Fix KeyboardShortcut menu, person upload picture (#2669)

* Fix KeyboardShortcut menu, person upload picture

* Fixes
This commit is contained in:
Charles Bochet
2023-11-23 13:44:54 +01:00
committed by GitHub
parent 9c4f402102
commit 9dabe44d0f
16 changed files with 168 additions and 35 deletions

View File

@ -1,5 +1,4 @@
import { useParams } from 'react-router-dom';
import { DateTime } from 'luxon';
import { useRecoilState } from 'recoil';
import { CompanyTeam } from '@/companies/components/CompanyTeam';
@ -26,6 +25,7 @@ import { PropertyBox } from '@/ui/object/record-inline-cell/property-box/compone
import { InlineCellHotkeyScope } from '@/ui/object/record-inline-cell/types/InlineCellHotkeyScope';
import { PageTitle } from '@/ui/utilities/page-title/PageTitle';
import { RecoilScope } from '@/ui/utilities/recoil-scope/components/RecoilScope';
import { FileFolder, useUploadImageMutation } from '~/generated/graphql';
import { getLogoUrlFromDomainName } from '~/utils';
import { useFindOneObjectRecord } from '../hooks/useFindOneObjectRecord';
@ -59,11 +59,12 @@ export const RecordShowPage = () => {
},
});
const useUpdateOneObjectMutation: () => [(params: any) => any, any] = () => {
const { updateOneObject } = useUpdateOneObjectRecord({
objectNameSingular,
});
const [uploadImage] = useUploadImageMutation();
const { updateOneObject } = useUpdateOneObjectRecord({
objectNameSingular,
});
const useUpdateOneObjectMutation: () => [(params: any) => any, any] = () => {
const updateEntity = ({
variables,
}: {
@ -126,6 +127,35 @@ export const RecordShowPage = () => {
objectMetadataItem?.nameSingular ?? '',
);
const onUploadPicture = async (file: File) => {
if (objectNameSingular !== 'person') {
return;
}
const result = await uploadImage({
variables: {
file,
fileFolder: FileFolder.PersonPicture,
},
});
const avatarUrl = result?.data?.uploadImage;
if (!avatarUrl) {
return;
}
if (!updateOneObject) {
return;
}
await updateOneObject({
idToUpdate: object?.id,
input: {
avatarUrl,
},
});
};
return (
<PageContainer>
<PageTitle title={pageName} />
@ -156,15 +186,16 @@ export const RecordShowPage = () => {
title={recordIdentifiers?.name ?? 'No name'}
date={object.createdAt ?? ''}
renderTitleEditComponent={() => <></>}
avatarType="squared"
avatarType={recordIdentifiers?.avatarType ?? 'rounded'}
onUploadPicture={
objectNameSingular === 'person' ? onUploadPicture : undefined
}
/>
<PropertyBox extraPadding={true}>
{objectMetadataItem &&
[...objectMetadataItem.fields]
.sort((a, b) =>
DateTime.fromISO(a.createdAt)
.diff(DateTime.fromISO(b.createdAt))
.toMillis(),
a.name === 'name' ? -1 : a.name.localeCompare(b.name),
)
.filter(filterAvailableFieldMetadataItem)
.map((metadataField, index) => {

View File

@ -17,5 +17,9 @@ export const filterAvailableFieldMetadataItem = (
return false;
}
if (fieldMetadataItem.isSystem) {
return false;
}
return true;
};