in apps/newsletters-ui/src/app/components/HomeMenu.tsx [57:135]
export function HomeMenu() {
const list = useLoaderData() as NewsletterData[];
const permissions = usePermissions();
const navigate = useNavigate();
if (!permissions) return null;
const showEditOptions = shouldShowEditOptions(permissions);
return (
<Container maxWidth={'lg'}>
<Grid container spacing={3} rowSpacing={6} paddingY={4}>
<ButtonGridItem
path="/launched"
content={'View launched newsletters'}
/>
<ButtonGridItem path="/drafts" content={'View draft newsletters'} />
{permissions.writeToDrafts && (
<ButtonGridItem
path="/drafts/newsletter-data"
content={'Create newsletter'}
variant="contained"
/>
)}
{showEditOptions && (
<Grid item xs={6} sm={4} display={'flex'}>
<ScrollingMenuButton
buttonText="update newsletter"
buttonProps={{
variant: 'outlined',
fullWidth: true,
size: 'large',
}}
ariaMenuId="newsletter-update-menu"
ariaButtonLabel="select newsletter to update"
options={list.map((newsletter) => ({
name: newsletter.name,
id: newsletter.identityName,
}))}
handleSelect={(identityName) => {
navigate(`/launched/edit/${identityName}`);
}}
/>
</Grid>
)}
{permissions.editNewsletters && (
<Grid item xs={6} sm={4} display={'flex'}>
<ScrollingMenuButton
buttonText="set rendering options"
buttonProps={{
variant: 'outlined',
fullWidth: true,
size: 'large',
}}
ariaMenuId="rendering-options-menu"
ariaButtonLabel="select newsletter to set rendering options for"
options={list.map((newsletter) => ({
name: newsletter.name,
id: newsletter.identityName,
}))}
handleSelect={(identityName) => {
navigate(`/launched/rendering-options/${identityName}`);
}}
/>
</Grid>
)}
<ButtonGridItem
path="/layouts"
content={'View Newsletter Layouts'}
variant="outlined"
/>
</Grid>
</Container>
);
}