MCPcopy Create free account
hub / github.com/dailydotdev/apps / useMutateFilters

Function useMutateFilters

packages/shared/src/hooks/useMutateFilters.ts:215–617  ·  view source on GitHub ↗
(
  user?: LoggedUser,
  feedId?: string,
  shouldFilterLocallyProp = false,
)

Source from the content-addressed store, hash-verified

213};
214
215export default function useMutateFilters(
216 user?: LoggedUser,
217 feedId?: string,
218 shouldFilterLocallyProp = false,
219): ReturnType {
220 const queryClient = useQueryClient();
221 const shouldFilterLocally = shouldFilterLocallyProp || !user;
222
223 const updateFeedFilters = useCallback(
224 ({ advancedSettings, ...filters }: FeedSettings) => {
225 const {
226 blockedTags = [],
227 excludeSources = [],
228 includeSources = [],
229 includeTags = [],
230 } = filters ?? {};
231 const fixed: typeof filters = {
232 includeTags: Array.from(new Set(includeTags)),
233 blockedTags: Array.from(new Set(blockedTags)),
234 excludeSources: Array.from(new Set(excludeSources)),
235 includeSources: Array.from(new Set(includeSources)),
236 };
237 return gqlClient.request(FEED_FILTERS_FROM_REGISTRATION, {
238 filters: fixed,
239 settings: advancedSettings,
240 });
241 },
242 [],
243 );
244
245 const onAdvancedSettingsUpdate = useCallback(
246 ({ advancedSettings }: AdvancedSettingsMutationProps) =>
247 onMutateAdvancedSettings(
248 advancedSettings,
249 queryClient,
250 (feedSettings, feedAdvancedSettings) => {
251 const newData = normalizeFeedSettings(structuredClone(feedSettings));
252 feedAdvancedSettings.forEach((feedAdvancedSetting) => {
253 const index = newData.advancedSettings.findIndex(
254 (settings) => settings.id === feedAdvancedSetting.id,
255 );
256 if (index === -1) {
257 newData.advancedSettings.push(feedAdvancedSetting);
258 } else {
259 newData.advancedSettings[index] = feedAdvancedSetting;
260 }
261 });
262
263 return newData;
264 },
265 user,
266 feedId,
267 ),
268 [user, queryClient, feedId],
269 );
270
271 const { mutateAsync: updateAdvancedSettingsRemote } = useMutation<
272 unknown,

Callers 3

SquadOptionsButtonFunction · 0.85
useTagAndSourceFunction · 0.85
useAdvancedSettingsFunction · 0.85

Calls 7

onMutateAdvancedSettingsFunction · 0.85
normalizeFeedSettingsFunction · 0.85
rollbackFunction · 0.85
onMutateTagsSettingsFunction · 0.85
onMutateSourcesSettingsFunction · 0.85
pushMethod · 0.80

Tested by

no test coverage detected