Files
mastodon/app/javascript/flavours/glitch/features/account_edit/components/column.tsx
2026-03-24 17:23:00 +01:00

64 lines
1.7 KiB
TypeScript

import type { FC } from 'react';
import { FormattedMessage } from 'react-intl';
import { Helmet } from 'react-helmet';
import { Link } from 'react-router-dom';
import { Column } from '@/flavours/glitch/components/column';
import { ColumnHeader } from '@/flavours/glitch/components/column_header';
import { LoadingIndicator } from '@/flavours/glitch/components/loading_indicator';
import BundleColumnError from '@/flavours/glitch/features/ui/components/bundle_column_error';
import { useColumnsContext } from '../../ui/util/columns_context';
import classes from '../styles.module.scss';
export const AccountEditEmptyColumn: FC<{
notFound?: boolean;
}> = ({ notFound }) => {
const { multiColumn } = useColumnsContext();
if (notFound) {
return <BundleColumnError multiColumn={multiColumn} errorType='routing' />;
}
return (
<Column bindToDocument={!multiColumn} className={classes.column}>
<LoadingIndicator />
</Column>
);
};
export const AccountEditColumn: FC<{
title: string;
to: string;
children: React.ReactNode;
}> = ({ to, title, children }) => {
const { multiColumn } = useColumnsContext();
return (
<>
<Column bindToDocument={!multiColumn} className={classes.column}>
<ColumnHeader
title={title}
className={classes.columnHeader}
showBackButton
extraButton={
<Link to={to} className='button'>
<FormattedMessage
id='account_edit.column_button'
defaultMessage='Done'
/>
</Link>
}
/>
{children}
</Column>
<Helmet>
<title>{title}</title>
</Helmet>
</>
);
};