// Hooks import { useState, useContext, useEffect } from 'react' import { useTranslation } from 'next-i18next' import { useAccount } from 'shared/hooks/use-account.mjs' import { useBackend } from 'shared/hooks/use-backend.mjs' // Context import { NavigationContext } from 'shared/context/navigation-context.mjs' import { LoadingContext } from 'shared/context/loading-context.mjs' // Components import { Spinner } from 'shared/components/spinner.mjs' import { Error404, ns as ns404 } from 'shared/components/errors/404.mjs' import { PatternPreview } from 'shared/components/pattern/preview.mjs' import { SettingsIcon, DownloadIcon, TrashIcon, OkIcon, NoIcon, DesignIcon, MeasureIcon, } from 'shared/components/icons.mjs' import { capitalize } from 'shared/utils.mjs' import Link from 'next/link' import Timeago from 'react-timeago' import { PageLink } from 'shared/components/page-link.mjs' import { Popout } from 'shared/components/popout.mjs' export const ns = [...ns404] const ManageOwnPattern = ({ pattern }) => { return
Manage own pattern
} const ManagePublicPattern = ({ pattern }) => { returnManage public pattern
} const AccessDenied = ({ pattern }) => { returnAccess Denied
} export const ManagePattern = ({ id = false }) => { // Context const { addPages } = useContext(NavigationContext) const { loading, startLoading, stopLoading } = useContext(LoadingContext) // State const [pattern, setPattern] = useState({}) const [error, setError] = useState(false) // Hooks const { account, setAccount, token } = useAccount() const backend = useBackend(token) const { t, i18n } = useTranslation(ns) const { language } = i18n // Effect useEffect(() => { const loadPattern = async () => { const result = await backend.getPattern(id) if (result.success) { if (result.data.pattern) { setPattern(result.data.pattern) } } else { if (result.response.response.status === 404) setError(404) } } if (id && Number(id) !== pattern.id) loadPattern() }, [id, pattern.id]) useEffect(() => { if (pattern.id) { addPages([[['patterns', '' + pattern.id], { t: pattern.name, s: `patterns/${pattern.id}` }]]) } }, [pattern.id]) if (error === 404) return{JSON.stringify(pattern, null, 2)}