diondiondion f84df36bd1 [Glitch] Update Profile Featured tab to latest designs
Port 05bed6f3d8fc57edfa699e3aac614d2989ef1f73 to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
2026-04-11 13:26:34 +02:00

48 lines
1.4 KiB
TypeScript

import type { FC } from 'react';
import { FormattedMessage } from 'react-intl';
import type { NavLinkProps } from 'react-router-dom';
import { NavLink } from 'react-router-dom';
import { useAccount } from '@/flavours/glitch/hooks/useAccount';
import { useAccountId } from '@/flavours/glitch/hooks/useAccountId';
import classes from './styles.module.scss';
const isActive: Required<NavLinkProps>['isActive'] = (match, location) =>
match?.url === location.pathname ||
(!!match?.url && location.pathname.startsWith(`${match.url}/tagged/`));
export const AccountTabs: FC = () => {
const accountId = useAccountId();
const account = useAccount(accountId);
if (!account) {
return <hr className={classes.noTabs} />;
}
const { acct, show_featured, show_media } = account;
if (!show_featured && !show_media) {
return <hr className={classes.noTabs} />;
}
return (
<div className={classes.tabs}>
<NavLink isActive={isActive} to={`/@${acct}`}>
<FormattedMessage id='account.activity' defaultMessage='Activity' />
</NavLink>
{show_media && (
<NavLink exact to={`/@${acct}/media`}>
<FormattedMessage id='account.media' defaultMessage='Media' />
</NavLink>
)}
{show_featured && (
<NavLink exact to={`/@${acct}/featured`}>
<FormattedMessage id='account.featured' defaultMessage='Featured' />
</NavLink>
)}
</div>
);
};