import type { SidebarViewMode } from '@dorfteich/shared'; import { SIDEBAR_VIEW_MODES } from '@dorfteich/shared'; import { useQueryClient } from '@tanstack/react-query'; import { useState } from 'react'; import { useTranslation } from 'react-i18next'; import { FormError, FormSuccess } from '../components/forms'; import { apiPatch } from '../lib/api'; /** * The pond's default sidebar view (issue #108): folders (page tree) or * labels. Owner-set; every member can still override it locally via the * sidebar toggle. Rides the generic pond PATCH like CommentPolicySetting. */ export function SidebarViewSetting({ pondId, pondSlug, value, }: { pondId: string; pondSlug: string; value: SidebarViewMode; }): React.JSX.Element { const { t } = useTranslation(); const queryClient = useQueryClient(); const [error, setError] = useState(null); const [saved, setSaved] = useState(false); const save = async (view: SidebarViewMode): Promise => { setError(null); setSaved(false); try { await apiPatch(`/ponds/${pondId}`, { sidebarView: view }); await queryClient.invalidateQueries({ queryKey: ['pond', pondSlug] }); setSaved(true); } catch (err) { setError(err); } }; return (

{t('layout.sidebar.view.defaultHint')}

{saved && }
); }