"use client"; import { observer } from "mobx-react"; import useSWR from "swr"; // components import { LogoSpinner } from "@/components/common/logo-spinner"; import { PoweredBy } from "@/components/common/powered-by"; import { SomethingWentWrongError } from "@/components/issues/issue-layouts/error"; import { IssuesNavbarRoot } from "@/components/issues/navbar"; // hooks import { usePublish, usePublishList } from "@/hooks/store/publish"; import { useIssueFilter } from "@/hooks/store/use-issue-filter"; type Props = { children: React.ReactNode; anchor: string; }; export const IssuesClientLayout = observer((props: Props) => { const { children, anchor } = props; // store hooks const { fetchPublishSettings } = usePublishList(); const publishSettings = usePublish(anchor); const { updateLayoutOptions } = useIssueFilter(); // fetch publish settings const { error } = useSWR( anchor ? `PUBLISH_SETTINGS_${anchor}` : null, anchor ? async () => { const response = await fetchPublishSettings(anchor); if (response.view_props) { updateLayoutOptions({ list: !!response.view_props.list, kanban: !!response.view_props.kanban, calendar: !!response.view_props.calendar, gantt: !!response.view_props.gantt, spreadsheet: !!response.view_props.spreadsheet, }); } } : null ); if (!publishSettings && !error) { return (