diff --git a/src/pages/SchemeDetail.module.css b/src/pages/SchemeDetail.module.css new file mode 100644 index 0000000..5b72152 --- /dev/null +++ b/src/pages/SchemeDetail.module.css @@ -0,0 +1,5 @@ +@layer pages { + .scheme_detail_layout { + padding: calc(var(--spacing) * 4) calc(var(--spacing) * 8); + } +} diff --git a/src/pages/SchemeDetail.tsx b/src/pages/SchemeDetail.tsx index e0be4a3..60d0249 100644 --- a/src/pages/SchemeDetail.tsx +++ b/src/pages/SchemeDetail.tsx @@ -1,12 +1,25 @@ -import { isNil } from 'lodash-es'; -import { useEffect } from 'react'; +import { isNil, set } from 'lodash-es'; +import { useCallback, useEffect } from 'react'; import { useNavigate, useParams } from 'react-router-dom'; -import { useScheme } from '../stores/schemes'; +import { EditableTitle } from '../components/EditableTitle'; +import { useScheme, useUpdateScheme } from '../stores/schemes'; +import styles from './SchemeDetail.module.css'; export function SchemeDetail() { const { id } = useParams(); const scheme = useScheme(id); const navigate = useNavigate(); + const updateScheme = useUpdateScheme(id); + + const updateTitle = useCallback( + (newTitle: string) => { + updateScheme((prev) => { + set(prev, 'name', newTitle); + return prev; + }); + }, + [id], + ); useEffect(() => { if (isNil(scheme)) { @@ -15,8 +28,8 @@ export function SchemeDetail() { }, [scheme, navigate]); return ( -
{scheme?.description}