mirror of
				https://github.com/superseriousbusiness/gotosocial.git
				synced 2025-10-30 23:12:25 -05:00 
			
		
		
		
	[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
This commit is contained in:
		
					parent
					
						
							
								401098191b
							
						
					
				
			
			
				commit
				
					
						0aadc2db2a
					
				
			
		
					 36 changed files with 3178 additions and 316 deletions
				
			
		|  | @ -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<User, void>({ | ||||
| 			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<User, { password: string, new_email: string }>({ | ||||
| 			query: (data) => ({ | ||||
| 				method: "POST", | ||||
|  | @ -56,6 +60,7 @@ const extended = gtsApi.injectEndpoints({ | |||
| 			}), | ||||
| 			...replaceCacheOnMutation("user") | ||||
| 		}), | ||||
| 		 | ||||
| 		aliasAccount: build.mutation<any, UpdateAliasesFormData>({ | ||||
| 			async queryFn(formData, _api, _extraOpts, fetchWithBQ) { | ||||
| 				// Pull entries out from the hooked form.
 | ||||
|  | @ -73,6 +78,7 @@ const extended = gtsApi.injectEndpoints({ | |||
| 				}); | ||||
| 			} | ||||
| 		}), | ||||
| 		 | ||||
| 		moveAccount: build.mutation<any, MoveAccountFormData>({ | ||||
| 			query: (data) => ({ | ||||
| 				method: "POST", | ||||
|  | @ -80,11 +86,37 @@ const extended = gtsApi.injectEndpoints({ | |||
| 				body: data | ||||
| 			}) | ||||
| 		}), | ||||
| 
 | ||||
| 		accountThemes: build.query<Theme[], void>({ | ||||
| 			query: () => ({ | ||||
| 				url: `/api/v1/accounts/themes` | ||||
| 			}) | ||||
| 		}) | ||||
| 		}), | ||||
| 
 | ||||
| 		defaultInteractionPolicies: build.query<DefaultInteractionPolicies, void>({ | ||||
| 			query: () => ({ | ||||
| 				url: `/api/v1/interaction_policies/defaults` | ||||
| 			}), | ||||
| 			providesTags: ["DefaultInteractionPolicies"] | ||||
| 		}), | ||||
| 
 | ||||
| 		updateDefaultInteractionPolicies: build.mutation<DefaultInteractionPolicies, UpdateDefaultInteractionPolicies>({ | ||||
| 			query: (data) => ({ | ||||
| 				method: "PATCH", | ||||
| 				url: `/api/v1/interaction_policies/defaults`, | ||||
| 				body: data, | ||||
| 			}), | ||||
| 			...replaceCacheOnMutation("defaultInteractionPolicies") | ||||
| 		}), | ||||
| 
 | ||||
| 		resetDefaultInteractionPolicies: build.mutation<DefaultInteractionPolicies, void>({ | ||||
| 			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; | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue