pleroma/packages/pl-fe/src/layouts/remote-instance-layout.tsx

47 lines
1.1 KiB
TypeScript
Raw Normal View History

2022-05-09 19:35:22 -07:00
import React from 'react';
import LinkFooter from 'pl-fe/features/ui/components/link-footer';
2022-05-09 19:35:22 -07:00
import {
PromoPanel,
InstanceInfoPanel,
InstanceModerationPanel,
} from 'pl-fe/features/ui/util/async-components';
import { useAppSelector, useOwnAccount } from 'pl-fe/hooks';
import { federationRestrictionsDisclosed } from 'pl-fe/utils/state';
2022-05-09 19:35:22 -07:00
import { Layout } from '../components/ui';
interface IRemoteInstanceLayout {
params?: {
instance?: string;
};
children: React.ReactNode;
2022-05-09 19:35:22 -07:00
}
/** Layout for viewing a remote instance timeline. */
const RemoteInstanceLayout: React.FC<IRemoteInstanceLayout> = ({ children, params }) => {
const host = params!.instance!;
2022-05-09 19:49:53 -07:00
2023-06-25 10:35:09 -07:00
const { account } = useOwnAccount();
2022-05-09 19:35:22 -07:00
const disclosed = useAppSelector(federationRestrictionsDisclosed);
return (
<>
<Layout.Main>
{children}
</Layout.Main>
<Layout.Aside>
<PromoPanel />
<InstanceInfoPanel host={host} />
{(disclosed || account?.is_admin) && (
<InstanceModerationPanel host={host} />
2022-05-09 19:35:22 -07:00
)}
<LinkFooter />
2022-05-09 19:35:22 -07:00
</Layout.Aside>
</>
);
};
export { RemoteInstanceLayout as default };