Support old relation filter value format (#9590)
Fix production bug caused by old relation filter value. **Draft, not tested yet at all, working on it right now.** --------- Co-authored-by: ad-elias <elias@autodiligence.com> Co-authored-by: Charles Bochet <charles@twenty.com>
This commit is contained in:
@ -12,7 +12,8 @@ import { onFilterSelectComponentState } from '@/object-record/object-filter-drop
|
||||
import { useGetCurrentView } from '@/views/hooks/useGetCurrentView';
|
||||
import { useUpsertCombinedViewFilters } from '@/views/hooks/useUpsertCombinedViewFilters';
|
||||
import { availableFilterDefinitionsComponentState } from '@/views/states/availableFilterDefinitionsComponentState';
|
||||
import { relationFilterValueSchema } from '@/views/view-filter-value/validation-schemas/relationFilterValueSchema';
|
||||
import { jsonRelationFilterValueSchema } from '@/views/view-filter-value/validation-schemas/jsonRelationFilterValueSchema';
|
||||
import { simpleRelationFilterValueSchema } from '@/views/view-filter-value/validation-schemas/simpleRelationFilterValueSchema';
|
||||
import { isDefined } from '~/utils/isDefined';
|
||||
|
||||
type ViewBarFilterEffectProps = {
|
||||
@ -82,10 +83,12 @@ export const ViewBarFilterEffect = ({
|
||||
filterDefinitionUsedInDropdown?.fieldMetadataId,
|
||||
);
|
||||
|
||||
const { selectedRecordIds } = relationFilterValueSchema
|
||||
const { selectedRecordIds } = jsonRelationFilterValueSchema
|
||||
.catch({
|
||||
isCurrentWorkspaceMemberSelected: false,
|
||||
selectedRecordIds: [],
|
||||
selectedRecordIds: simpleRelationFilterValueSchema.parse(
|
||||
viewFilterUsedInDropdown?.value,
|
||||
),
|
||||
})
|
||||
.parse(viewFilterUsedInDropdown?.value);
|
||||
|
||||
|
||||
@ -16,7 +16,7 @@ import { ObjectRecord } from '@/object-record/types/ObjectRecord';
|
||||
import { generateFindManyRecordsQuery } from '@/object-record/utils/generateFindManyRecordsQuery';
|
||||
import { ViewFilter } from '@/views/types/ViewFilter';
|
||||
import { ViewFilterOperand } from '@/views/types/ViewFilterOperand';
|
||||
import { relationFilterValueSchemaObject } from '@/views/view-filter-value/validation-schemas/relationFilterValueSchema';
|
||||
import { relationFilterValueSchemaObject } from '@/views/view-filter-value/validation-schemas/jsonRelationFilterValueSchema';
|
||||
import { isDefined } from '~/utils/isDefined';
|
||||
import { isUndefinedOrNull } from '~/utils/isUndefinedOrNull';
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
import { relationFilterValueSchema } from '@/views/view-filter-value/validation-schemas/relationFilterValueSchema';
|
||||
import { jsonRelationFilterValueSchema } from '@/views/view-filter-value/validation-schemas/jsonRelationFilterValueSchema';
|
||||
import { z } from 'zod';
|
||||
|
||||
export type RelationFilterValue = z.infer<typeof relationFilterValueSchema>;
|
||||
export type RelationFilterValue = z.infer<typeof jsonRelationFilterValueSchema>;
|
||||
|
||||
@ -5,7 +5,7 @@ export const relationFilterValueSchemaObject = z.object({
|
||||
selectedRecordIds: z.array(z.string()),
|
||||
});
|
||||
|
||||
export const relationFilterValueSchema = z
|
||||
export const jsonRelationFilterValueSchema = z
|
||||
.string()
|
||||
.transform((value, ctx) => {
|
||||
try {
|
||||
@ -0,0 +1,11 @@
|
||||
import { z } from 'zod';
|
||||
|
||||
export const simpleRelationFilterValueSchema = z
|
||||
.preprocess((value) => {
|
||||
try {
|
||||
return typeof value === 'string' ? JSON.parse(value) : [];
|
||||
} catch {
|
||||
return [];
|
||||
}
|
||||
}, z.array(z.string().uuid()))
|
||||
.catch([]);
|
||||
Reference in New Issue
Block a user