'use client'; import { ReactNode, useCallback } from 'react'; import { Title } from '@gitroom/frontend/components/layout/title'; import { ContextWrapper } from '@gitroom/frontend/components/layout/user.context'; import { TopMenu } from '@gitroom/frontend/components/layout/top.menu'; import { MantineWrapper } from '@gitroom/react/helpers/mantine.wrapper'; import { ToolTip } from '@gitroom/frontend/components/layout/top.tip'; import { ShowMediaBoxModal } from '@gitroom/frontend/components/media/media.component'; import Image from 'next/image'; import { Toaster } from '@gitroom/react/toaster/toaster'; import { ShowPostSelector } from '@gitroom/frontend/components/post-url-selector/post.url.selector'; import { OrganizationSelector } from '@gitroom/frontend/components/layout/organization.selector'; import NotificationComponent from '@gitroom/frontend/components/notifications/notification.component'; import Link from 'next/link'; import useSWR from 'swr'; import { useFetch } from '@gitroom/helpers/utils/custom.fetch'; import dayjs from 'dayjs'; import utc from 'dayjs/plugin/utc'; import weekOfYear from 'dayjs/plugin/weekOfYear'; import isoWeek from 'dayjs/plugin/isoWeek'; import isBetween from 'dayjs/plugin/isBetween'; import { ShowLinkedinCompany } from '@gitroom/frontend/components/launches/helpers/linkedin.component'; import { SettingsComponent } from '@gitroom/frontend/components/layout/settings.component'; import { Onboarding } from '@gitroom/frontend/components/onboarding/onboarding'; import { Support } from '@gitroom/frontend/components/layout/support'; import { ContinueProvider } from '@gitroom/frontend/components/layout/continue.provider'; import { CopilotKit } from '@copilotkit/react-core'; import { Impersonate } from '@gitroom/frontend/components/layout/impersonate'; import clsx from 'clsx'; import { BillingComponent } from '@gitroom/frontend/components/billing/billing.component'; import dynamic from 'next/dynamic'; import { NewSubscription } from '@gitroom/frontend/components/layout/new.subscription'; import { useVariables } from '@gitroom/react/helpers/variable.context'; const ModeComponent = dynamic( () => import('@gitroom/frontend/components/layout/mode.component'), { ssr: false } ); dayjs.extend(utc); dayjs.extend(weekOfYear); dayjs.extend(isoWeek); dayjs.extend(isBetween); export const LayoutSettings = ({ children }: { children: ReactNode }) => { const fetch = useFetch(); const {isGeneral} = useVariables(); const {backendUrl, billingEnabled} = useVariables(); const load = useCallback(async (path: string) => { return await (await fetch(path)).json(); }, []); const { data: user } = useSWR('/user/self', load, { revalidateOnFocus: false, revalidateOnReconnect: false, revalidateIfStale: false, refreshWhenOffline: false, refreshWhenHidden: false, }); if (!user) return null; return ( {user.tier !== 'FREE' && }
{user?.admin && }
Logo
{isGeneral ? ( ) : ( 'Gitroom' )}
{user?.orgId && (user.tier !== 'FREE' || !isGeneral || !billingEnabled) ? ( ) : (
)}
{(user.tier === 'FREE' && isGeneral) && billingEnabled ? ( <>

Join 1000+ Entrepreneurs Who Use Postiz
To Manage All Your Social Media Channels


100% no-risk trial
Pay nothing for the first 7 days
Cancel anytime, hassle-free
) : ( <> <div className="flex flex-1 flex-col">{children}</div> </> )} </div> </div> </div> </MantineWrapper> </ContextWrapper> </CopilotKit> </ContextWrapper> ); };