Feat/error boundaries (#2779)

* - Changed to objectNameSingular always defined
- Added ErrorCatchAll

* - Added mock mode for companies logged out
- Added a proper ErrorBoundary component

* Removed react-error-boundary

* Implemented proper ErrorBoundary

* Fixes

* Change strategy about mocks

---------

Co-authored-by: Charles Bochet <charles@twenty.com>
This commit is contained in:
Lucas Bordeau
2023-12-01 22:06:38 +01:00
committed by GitHub
parent a301f451f9
commit 74b077f3ca
75 changed files with 4213 additions and 674 deletions

View File

@ -62,10 +62,9 @@ export const CreateProfile = () => {
currentWorkspaceMemberState,
);
const { updateOneRecord, objectMetadataItemNotFound } =
useUpdateOneRecord<WorkspaceMember>({
objectNameSingular: 'workspaceMember',
});
const { updateOneRecord } = useUpdateOneRecord<WorkspaceMember>({
objectNameSingular: 'workspaceMember',
});
// Form
const {
@ -91,9 +90,6 @@ export const CreateProfile = () => {
if (!data.firstName || !data.lastName) {
throw new Error('First name or last name is missing');
}
if (!updateOneRecord || objectMetadataItemNotFound) {
throw new Error('Object not found in metadata');
}
await updateOneRecord({
idToUpdate: currentWorkspaceMember?.id,
@ -127,7 +123,6 @@ export const CreateProfile = () => {
currentWorkspaceMember?.id,
enqueueSnackBar,
navigate,
objectMetadataItemNotFound,
setCurrentWorkspaceMember,
updateOneRecord,
],

View File

@ -35,7 +35,7 @@ export const SettingsWorkspaceMembers = () => {
>();
const { records: workspaceMembers } = useFindManyRecords<WorkspaceMember>({
objectNamePlural: 'workspaceMembers',
objectNameSingular: 'workspaceMember',
});
const { deleteOneRecord: deleteOneWorkspaceMember } =
useDeleteOneRecord<WorkspaceMember>({

View File

@ -79,7 +79,7 @@ export const SettingsObjectNewFieldStep2 = () => {
});
useFindManyRecords({
objectNamePlural: 'views',
objectNameSingular: 'view',
filter: {
type: { eq: ViewType.Table },
objectMetadataId: { eq: activeObjectMetadataItem?.id },
@ -94,7 +94,7 @@ export const SettingsObjectNewFieldStep2 = () => {
});
useFindManyRecords({
objectNamePlural: 'views',
objectNameSingular: 'view',
skip: !formValues.relation?.objectMetadataId,
filter: {
type: { eq: ViewType.Table },

View File

@ -43,8 +43,9 @@ export const SettingsDevelopersApiKeys = () => {
const [apiKeys, setApiKeys] = useState<Array<ApiFieldItem>>([]);
const filter = { revokedAt: { is: 'NULL' } };
useFindManyRecords({
objectNamePlural: 'apiKeys',
objectNameSingular: 'apiKey',
filter,
orderBy: {},
onCompleted: (data) => {

View File

@ -33,6 +33,7 @@ export const SettingsDevelopersApiKeysNew = () => {
const { createOneRecord: createOneApiKey } = useCreateOneRecord<ApiKey>({
objectNameSingular: 'apiKey',
});
const onSave = async () => {
const expiresAt = DateTime.now()
.plus({ days: formValues.expirationDate ?? 30 })