Hey @gray tinsel , try to picture this
There is a rolePermission System Object that I have created. I fetch records for this object using useFindManyRecords() like this...
const { records: newRolePermissions, loading } =
useFindManyRecords<RolePermission>({
objectNameSingular: ROLE_PERMISSION_QUERY_KEY.objectNameSingular,
depth: 4,
filter: {
roleId: { eq: workspaceRole?.id },
objectMetadataId: {
in: activeObjectMetadataItems?.map(({ id }) => id),
},
},
queryFields: ROLE_PERMISSION_QUERY_KEY.fields,
});
This is the ROLE_PERMISSION_QUERY_KEY object,
export const ROLE_PERMISSION_QUERY_KEY: QueryKey = {
objectNameSingular: CoreObjectNameSingular.RolePermission,
variables: {},
fields: {
id: true,
objectMetadataId: true,
accessLevel: true,
hasLimitedAccess: true,
roleFieldPermissions: {
id: true,
recordId: true,
fieldMetadataId: true,
accessLevel: true,
},
roleAssignments: {
id: true,
recordId: true,
assignee: {
id: true,
name: true,
},
},
},
};
Now, as per the data I am requesting, it will consists RoleAssignment objects,
now at somepoint in flow, I am using useCreateOneRecord() to create new RoleAssignment for this RolePermission, and I expect that this should be reflected in my useFindManyRecords() records object and which should result in state update and trigger rerender.
This is how I am creating a new RoleAssignment,
createOneRoleAssignment({
rolePermissionId: rolePermissionsMap.get(
rolePermissionedActiveObjectMetadata?.id as string,
)?.id as string,
recordId: rolePermissionedObjectRecord?.id as string,
assigneeId,
createdById: currentWorkspaceMember?.id,
updatedById: currentWorkspaceMember?.id,
});