From 0aadc2db2a42fc99538fbbb096b84b209b9ccd68 Mon Sep 17 00:00:00 2001 From: tobi <31960611+tsmethurst@users.noreply.github.com> Date: Wed, 17 Jul 2024 16:46:52 +0200 Subject: [feature] Allow users to set default interaction policies per status visibility (#3108) * [feature] Allow users to set default interaction policies * use vars for default policies * avoid some code repetition * unfuck form binding * avoid bonkers loop * beep boop * put policyValsToAPIPolicyVals in separate function * don't bother with slices.Grow * oops --- web/source/settings/lib/query/user/index.ts | 37 ++++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) (limited to 'web/source/settings/lib/query/user/index.ts') diff --git a/web/source/settings/lib/query/user/index.ts b/web/source/settings/lib/query/user/index.ts index 1f9070bfb..0df926eb3 100644 --- a/web/source/settings/lib/query/user/index.ts +++ b/web/source/settings/lib/query/user/index.ts @@ -25,6 +25,7 @@ import type { } from "../../types/migration"; import type { Theme } from "../../types/theme"; import { User } from "../../types/user"; +import { DefaultInteractionPolicies, UpdateDefaultInteractionPolicies } from "../../types/interaction"; const extended = gtsApi.injectEndpoints({ endpoints: (build) => ({ @@ -38,9 +39,11 @@ const extended = gtsApi.injectEndpoints({ }), ...replaceCacheOnMutation("verifyCredentials") }), + user: build.query({ query: () => ({url: `/api/v1/user`}) }), + passwordChange: build.mutation({ query: (data) => ({ method: "POST", @@ -48,6 +51,7 @@ const extended = gtsApi.injectEndpoints({ body: data }) }), + emailChange: build.mutation({ query: (data) => ({ method: "POST", @@ -56,6 +60,7 @@ const extended = gtsApi.injectEndpoints({ }), ...replaceCacheOnMutation("user") }), + aliasAccount: build.mutation({ async queryFn(formData, _api, _extraOpts, fetchWithBQ) { // Pull entries out from the hooked form. @@ -73,6 +78,7 @@ const extended = gtsApi.injectEndpoints({ }); } }), + moveAccount: build.mutation({ query: (data) => ({ method: "POST", @@ -80,11 +86,37 @@ const extended = gtsApi.injectEndpoints({ body: data }) }), + accountThemes: build.query({ query: () => ({ url: `/api/v1/accounts/themes` }) - }) + }), + + defaultInteractionPolicies: build.query({ + query: () => ({ + url: `/api/v1/interaction_policies/defaults` + }), + providesTags: ["DefaultInteractionPolicies"] + }), + + updateDefaultInteractionPolicies: build.mutation({ + query: (data) => ({ + method: "PATCH", + url: `/api/v1/interaction_policies/defaults`, + body: data, + }), + ...replaceCacheOnMutation("defaultInteractionPolicies") + }), + + resetDefaultInteractionPolicies: build.mutation({ + query: () => ({ + method: "PATCH", + url: `/api/v1/interaction_policies/defaults`, + body: {}, + }), + invalidatesTags: ["DefaultInteractionPolicies"] + }), }) }); @@ -96,4 +128,7 @@ export const { useAliasAccountMutation, useMoveAccountMutation, useAccountThemesQuery, + useDefaultInteractionPoliciesQuery, + useUpdateDefaultInteractionPoliciesMutation, + useResetDefaultInteractionPoliciesMutation, } = extended; -- cgit v1.2.3