Skip to content

Commit 5611407

Browse files
committed
Add loading skeletons, remove field region col field region - projects table
1 parent 4638c9c commit 5611407

File tree

5 files changed

+40
-26
lines changed

5 files changed

+40
-26
lines changed

src/scenes/FieldRegions/Detail/FieldRegionDetail.tsx

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ const useFieldRegionDetailsFilters = makeQueryHandler({
1818
export const FieldRegionDetail = () => {
1919
const { fieldRegionId = '' } = useParams();
2020

21-
const { data, error } = useQuery(FieldRegionDetailDocument, {
21+
const { data, error, loading } = useQuery(FieldRegionDetailDocument, {
2222
variables: { fieldRegionId },
2323
});
2424

@@ -60,8 +60,10 @@ export const FieldRegionDetail = () => {
6060
lineHeight: 'inherit',
6161
}}
6262
>
63-
{!fieldRegion ? (
64-
<Skeleton width="20ch" />
63+
{loading ? (
64+
<Skeleton width={200} />
65+
) : !fieldRegion ? (
66+
<Skeleton width={200} />
6567
) : (
6668
fieldRegion.name.value ?? (
6769
<Redacted
@@ -83,12 +85,10 @@ export const FieldRegionDetail = () => {
8385
<Tab label="Projects" value="projects" />
8486
</TabList>
8587
<TabPanel value="profile">
86-
{fieldRegion && (
87-
<FieldRegionProfile fieldRegion={fieldRegion} />
88-
)}
88+
<FieldRegionProfile fieldRegion={fieldRegion} />
8989
</TabPanel>
9090
<TabPanel value="projects">
91-
{fieldRegion && <FieldRegionProjects />}
91+
<FieldRegionProjects />
9292
</TabPanel>
9393
</TabContext>
9494
</TabsContainer>

src/scenes/FieldRegions/Detail/Tabs/Profile/FieldRegionProfile.tsx

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import { Link } from '~/components/Routing';
1919
import { FieldRegionProfileFragment } from './FieldRegionProfile.graphql';
2020

2121
interface FieldRegionProfileProps {
22-
fieldRegion: FieldRegionProfileFragment;
22+
fieldRegion: FieldRegionProfileFragment | undefined;
2323
}
2424

2525
export const FieldRegionProfile = ({
@@ -43,37 +43,44 @@ export const FieldRegionProfile = ({
4343
sx={{
4444
p: 2,
4545
gap: 2,
46+
flex: 1,
4647
}}
4748
>
4849
<DisplayProperty
4950
label="Field Zone"
5051
value={
51-
<Link to={`/field-zones/${fieldRegion.fieldZone.value?.id}`}>
52-
{fieldRegion.fieldZone.value?.name.value}
53-
</Link>
52+
fieldRegion?.fieldZone.value ? (
53+
<Link to={`/field-zones/${fieldRegion.fieldZone.value.id}`}>
54+
{fieldRegion.fieldZone.value.name.value}
55+
</Link>
56+
) : null
5457
}
5558
loading={!fieldRegion}
5659
/>
5760
<DisplayProperty
5861
label="Director"
5962
value={
60-
<Link to={`/users/${fieldRegion.director.value?.id}`}>
61-
{fieldRegion.director.value?.fullName}
62-
</Link>
63+
fieldRegion?.director.value ? (
64+
<Link to={`/users/${fieldRegion.director.value.id}`}>
65+
{fieldRegion.director.value.fullName}
66+
</Link>
67+
) : null
6368
}
6469
loading={!fieldRegion}
6570
/>
6671
</Stack>
6772
<Box sx={{ p: 1 }}>
6873
{canEditAnyFields ? (
6974
<Tooltip title="Edit Field Region">
70-
<IconButton aria-label="edit field region" onClick={editRegion}>
75+
<IconButton onClick={editRegion}>
7176
<Edit />
7277
</IconButton>
7378
</Tooltip>
7479
) : null}
7580
</Box>
76-
<EditFieldRegion fieldRegion={fieldRegion} {...editRegionState} />
81+
{fieldRegion && (
82+
<EditFieldRegion fieldRegion={fieldRegion} {...editRegionState} />
83+
)}
7784
</Box>
7885
);
7986
};

src/scenes/FieldRegions/Detail/Tabs/Projects/FieldRegionProjects.tsx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ export const FieldRegionProjects = () => {
5454
{...props}
5555
slots={slots}
5656
slotProps={slotProps}
57-
columns={ProjectColumns}
57+
columns={FieldRegionProjectColumns}
5858
initialState={ProjectInitialState}
5959
headerFilters
6060
hideFooter
@@ -63,3 +63,8 @@ export const FieldRegionProjects = () => {
6363
</TabPanelContent>
6464
);
6565
};
66+
67+
// Remove the 'fieldRegion' column since this view is scoped to a specific field region
68+
const FieldRegionProjectColumns = ProjectColumns.filter(
69+
(col) => col.field !== 'fieldRegion.name'
70+
);

src/scenes/FieldZones/Detail/FieldZoneDetail.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,8 @@ export const FieldZoneDetail = () => {
3939
>
4040
<Error error={error}>
4141
{{
42-
NotFound: 'Could not find fieldZone',
43-
Default: 'Error loading fieldZone',
42+
NotFound: 'Could not find field zone',
43+
Default: 'Error loading field zone',
4444
}}
4545
</Error>
4646
<Helmet title={fieldZone?.name.value ?? undefined} />
@@ -83,7 +83,7 @@ export const FieldZoneDetail = () => {
8383
<Tab label="Projects" value="projects" />
8484
</TabList>
8585
<TabPanel value="profile">
86-
{fieldZone && <FieldZoneProfile fieldZone={fieldZone} />}
86+
<FieldZoneProfile fieldZone={fieldZone} />
8787
</TabPanel>
8888
<TabPanel value="projects">
8989
{fieldZone && <FieldZoneProjects />}

src/scenes/FieldZones/Detail/Tabs/Profile/FieldZoneProfile.tsx

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import { Link } from '~/components/Routing';
1919
import { FieldZoneProfileFragment } from './FieldZoneProfile.graphql';
2020

2121
interface FieldZoneProfileProps {
22-
fieldZone: FieldZoneProfileFragment;
22+
fieldZone: FieldZoneProfileFragment | undefined;
2323
}
2424

2525
export const FieldZoneProfile = ({ fieldZone }: FieldZoneProfileProps) => {
@@ -46,23 +46,25 @@ export const FieldZoneProfile = ({ fieldZone }: FieldZoneProfileProps) => {
4646
<DisplayProperty
4747
label="Director"
4848
value={
49-
<Link to={`/users/${fieldZone.director.value?.id}`}>
50-
{fieldZone.director.value?.fullName}
51-
</Link>
49+
fieldZone?.director.value ? (
50+
<Link to={`/users/${fieldZone.director.value.id}`}>
51+
{fieldZone.director.value.fullName}
52+
</Link>
53+
) : null
5254
}
5355
loading={!fieldZone}
5456
/>
5557
</Stack>
5658
<Box sx={{ p: 1 }}>
5759
{canEditAnyFields ? (
5860
<Tooltip title="Edit Field Zone">
59-
<IconButton aria-label="edit field Zone" onClick={editZone}>
61+
<IconButton onClick={editZone}>
6062
<Edit />
6163
</IconButton>
6264
</Tooltip>
6365
) : null}
6466
</Box>
65-
<EditFieldZone fieldZone={fieldZone} {...editZoneState} />
67+
{fieldZone && <EditFieldZone fieldZone={fieldZone} {...editZoneState} />}
6668
</Box>
6769
);
6870
};

0 commit comments

Comments
 (0)