import { SettingsTableCard } from '@/settings/components/SettingsTableCard';
import { type WorkspaceInfo } from '@/settings/admin-panel/types/WorkspaceInfo';
import { getWorkspaceSchemaName } from '@/settings/admin-panel/utils/getWorkspaceSchemaName';
import { DEFAULT_WORKSPACE_LOGO } from '@/ui/navigation/navigation-drawer/constants/DefaultWorkspaceLogo';
import { styled } from '@linaria/react';
import { useLingui } from '@lingui/react/macro';
import { isNonEmptyString } from '@sniptt/guards';
import { SettingsPath } from 'twenty-shared/types';
import {
getImageAbsoluteURI,
getSettingsPath,
isDefined,
} from 'twenty-shared/utils';
import { AvatarOrIcon, LinkChip } from 'twenty-ui/components';
import {
H2Title,
IconCalendar,
IconHome,
IconId,
IconLink,
IconStatusChange,
IconUser,
} from 'twenty-ui/display';
import { Section } from 'twenty-ui/layout';
import { themeCssVariables } from 'twenty-ui/theme-constants';
import { REACT_APP_SERVER_BASE_URL } from '~/config';
type SettingsAdminWorkspaceContentProps = {
activeWorkspace: WorkspaceInfo | undefined;
};
const StyledContainer = styled.div`
display: flex;
flex-direction: column;
gap: ${themeCssVariables.spacing[3]};
margin-top: ${themeCssVariables.spacing[6]};
`;
export const SettingsAdminWorkspaceContent = ({
activeWorkspace,
}: SettingsAdminWorkspaceContentProps) => {
const { t } = useLingui();
const getWorkspaceUrl = (workspaceUrls: WorkspaceInfo['workspaceUrls']) => {
return workspaceUrls.customUrl ?? workspaceUrls.subdomainUrl;
};
const workspaceInfoItems = [
{
Icon: IconHome,
label: t`Name`,
value: activeWorkspace?.id ? (
}
/>
) : (
(activeWorkspace?.name ?? '')
),
},
{
Icon: IconId,
label: t`ID`,
value: activeWorkspace?.id,
},
{
Icon: IconId,
label: t`Schema name`,
value: isDefined(activeWorkspace?.id)
? getWorkspaceSchemaName(activeWorkspace.id)
: '',
},
{
Icon: IconLink,
label: t`URL`,
value: activeWorkspace?.workspaceUrls
? getWorkspaceUrl(activeWorkspace.workspaceUrls)
: '',
},
{
Icon: IconUser,
label: t`Members`,
value: activeWorkspace?.totalUsers,
},
{
Icon: IconStatusChange,
label: t`Status`,
value: activeWorkspace?.activationStatus,
},
{
Icon: IconCalendar,
label: t`Created`,
value: activeWorkspace?.createdAt
? new Date(activeWorkspace.createdAt).toLocaleDateString()
: '',
},
];
if (!activeWorkspace) return null;
return (
);
};