2973-feat: Skeleton Loading Added (#2988)

* 2973-feat: Skeleton Loading Added

* loading from useQuery

* PR suggestions fixed

* Fix accoding to review

---------

Co-authored-by: Charles Bochet <charles@twenty.com>
This commit is contained in:
Kanav Arora
2023-12-20 14:37:16 +05:30
committed by GitHub
parent c09b98cdc9
commit d2666dc667
4 changed files with 69 additions and 60 deletions

View File

@ -55,7 +55,7 @@ export const RecordShowPage = () => {
entityFieldsFamilyState(objectRecordId ?? ''), entityFieldsFamilyState(objectRecordId ?? ''),
); );
const { record } = useFindOneRecord({ const { record, loading } = useFindOneRecord({
objectRecordId, objectRecordId,
objectNameSingular, objectNameSingular,
onCompleted: (data) => { onCompleted: (data) => {
@ -129,12 +129,10 @@ export const RecordShowPage = () => {
} }
}; };
if (!record) return <></>;
const pageName = const pageName =
objectNameSingular === 'person' objectNameSingular === 'person'
? record.name.firstName + ' ' + record.name.lastName ? record?.name.firstName + ' ' + record?.name.lastName
: record.name; : record?.name;
const recordIdentifiers = identifiersMapper?.( const recordIdentifiers = identifiersMapper?.(
record, record,
@ -161,9 +159,12 @@ export const RecordShowPage = () => {
if (!updateOneRecord) { if (!updateOneRecord) {
return; return;
} }
if (!record) {
return;
}
await updateOneRecord({ await updateOneRecord({
idToUpdate: record?.id, idToUpdate: record.id,
input: { input: {
avatarUrl, avatarUrl,
}, },
@ -178,7 +179,7 @@ export const RecordShowPage = () => {
hasBackButton hasBackButton
Icon={IconBuildingSkyscraper} Icon={IconBuildingSkyscraper}
> >
{objectMetadataType !== 'Custom' && ( {record && objectMetadataType !== 'Custom' && (
<> <>
<PageFavoriteButton <PageFavoriteButton
isFavorite={isFavorite} isFavorite={isFavorite}
@ -198,6 +199,8 @@ export const RecordShowPage = () => {
<RecoilScope CustomRecoilScopeContext={ShowPageRecoilScopeContext}> <RecoilScope CustomRecoilScopeContext={ShowPageRecoilScopeContext}>
<ShowPageContainer> <ShowPageContainer>
<ShowPageLeftContainer> <ShowPageLeftContainer>
{!loading && record ? (
<>
<ShowPageSummaryCard <ShowPageSummaryCard
id={record.id} id={record.id}
logoOrAvatar={recordIdentifiers?.avatarUrl} logoOrAvatar={recordIdentifiers?.avatarUrl}
@ -206,7 +209,9 @@ export const RecordShowPage = () => {
renderTitleEditComponent={() => <></>} renderTitleEditComponent={() => <></>}
avatarType={recordIdentifiers?.avatarType ?? 'rounded'} avatarType={recordIdentifiers?.avatarType ?? 'rounded'}
onUploadPicture={ onUploadPicture={
objectNameSingular === 'person' ? onUploadPicture : undefined objectNameSingular === 'person'
? onUploadPicture
: undefined
} }
/> />
<PropertyBox extraPadding={true}> <PropertyBox extraPadding={true}>
@ -247,10 +252,14 @@ export const RecordShowPage = () => {
) : ( ) : (
<></> <></>
)} )}
</>
) : (
<></>
)}
</ShowPageLeftContainer> </ShowPageLeftContainer>
<ShowPageRightContainer <ShowPageRightContainer
entity={{ entity={{
id: record.id, id: record?.id || '',
// TODO: refacto // TODO: refacto
type: type:
objectMetadataItem?.nameSingular === 'company' objectMetadataItem?.nameSingular === 'company'

View File

@ -25,7 +25,7 @@ const StyledScrollWrapper = styled(ScrollWrapper)`
`; `;
export type ShowPageContainerProps = { export type ShowPageContainerProps = {
children: ReactElement[]; children: ReactElement[] | ReactElement;
}; };
export const ShowPageContainer = ({ children }: ShowPageContainerProps) => { export const ShowPageContainer = ({ children }: ShowPageContainerProps) => {

View File

@ -38,7 +38,7 @@ const StyledIntermediateContainer = styled.div`
`; `;
export type ShowPageLeftContainerProps = { export type ShowPageLeftContainerProps = {
children: ReactElement[]; children: ReactElement;
}; };
export const ShowPageLeftContainer = ({ export const ShowPageLeftContainer = ({

View File

@ -40,7 +40,7 @@ const StyledTabListContainer = styled.div`
`; `;
type ShowPageRightContainerProps = { type ShowPageRightContainerProps = {
entity: ActivityTargetableEntity; entity?: ActivityTargetableEntity;
timeline?: boolean; timeline?: boolean;
tasks?: boolean; tasks?: boolean;
notes?: boolean; notes?: boolean;
@ -55,7 +55,12 @@ export const ShowPageRightContainer = ({
emails, emails,
}: ShowPageRightContainerProps) => { }: ShowPageRightContainerProps) => {
const isMessagingEnabled = useIsFeatureEnabled('IS_MESSAGING_ENABLED'); const isMessagingEnabled = useIsFeatureEnabled('IS_MESSAGING_ENABLED');
const [activeTabId] = useRecoilScopedState(
activeTabIdScopedState,
ShowPageRecoilScopeContext,
);
if (!entity) return <></>;
const TASK_TABS = [ const TASK_TABS = [
{ {
id: 'timeline', id: 'timeline',
@ -94,11 +99,6 @@ export const ShowPageRightContainer = ({
}, },
]; ];
const [activeTabId] = useRecoilScopedState(
activeTabIdScopedState,
ShowPageRecoilScopeContext,
);
return ( return (
<StyledShowPageRightContainer> <StyledShowPageRightContainer>
<StyledTabListContainer> <StyledTabListContainer>