Files
twenty/packages/twenty-front/src/modules/settings/serverless-functions/components/SettingsServerlessFunctionsTable.tsx
Gabriel Utzig c73feb513a fix: Center Functions Empty state (#7378)
## Description
- This PR fix #7012
- It changes the logic behind the rendering of `SettingsPageContainer`
component. Now, the component is only rendered when the page content is
not blank.
## Changes
| Before | After |
|--------|--------|
|
![image](https://github.com/user-attachments/assets/98b64370-f145-41a2-a829-f86ae9687f73)
|
![image](https://github.com/user-attachments/assets/4cb0cc32-a669-4151-9444-4bc734bd2909)
|

<details><summary>Details</summary>
<p>
This change aligns the behavior of the settings page with the existing
logic found on the `/rockets` page
<img
src="https://github.com/user-attachments/assets/d2b80fbc-83e4-4823-a708-6775e19a153a"/>
</p>
</details>

Co-authored-by: Charles Bochet <charles@twenty.com>
2024-10-05 01:23:02 +02:00

56 lines
2.3 KiB
TypeScript

import { SettingsPageContainer } from '@/settings/components/SettingsPageContainer';
import { SettingsServerlessFunctionsFieldItemTableRow } from '@/settings/serverless-functions/components/SettingsServerlessFunctionsFieldItemTableRow';
import { SettingsServerlessFunctionsTableEmpty } from '@/settings/serverless-functions/components/SettingsServerlessFunctionsTableEmpty';
import { useGetManyServerlessFunctions } from '@/settings/serverless-functions/hooks/useGetManyServerlessFunctions';
import { getSettingsPagePath } from '@/settings/utils/getSettingsPagePath';
import { SettingsPath } from '@/types/SettingsPath';
import { Table } from '@/ui/layout/table/components/Table';
import { TableBody } from '@/ui/layout/table/components/TableBody';
import { TableHeader } from '@/ui/layout/table/components/TableHeader';
import { TableRow } from '@/ui/layout/table/components/TableRow';
import styled from '@emotion/styled';
import { ServerlessFunction } from '~/generated-metadata/graphql';
const StyledTableRow = styled(TableRow)`
grid-template-columns: 312px 132px 68px;
`;
const StyledTableBody = styled(TableBody)`
border-bottom: 1px solid ${({ theme }) => theme.border.color.light};
`;
export const SettingsServerlessFunctionsTable = () => {
const { serverlessFunctions } = useGetManyServerlessFunctions();
return (
<>
{serverlessFunctions.length ? (
<SettingsPageContainer>
<Table>
<StyledTableRow>
<TableHeader>Name</TableHeader>
<TableHeader>Runtime</TableHeader>
<TableHeader></TableHeader>
</StyledTableRow>
<StyledTableBody>
{serverlessFunctions.map(
(serverlessFunction: ServerlessFunction) => (
<SettingsServerlessFunctionsFieldItemTableRow
key={serverlessFunction.id}
serverlessFunction={serverlessFunction}
to={getSettingsPagePath(SettingsPath.ServerlessFunctions, {
id: serverlessFunction.id,
})}
/>
),
)}
</StyledTableBody>
</Table>
</SettingsPageContainer>
) : (
<SettingsServerlessFunctionsTableEmpty />
)}
</>
);
};