From 8953f57d887c060c3b58f83c38d2010d27a45ef3 Mon Sep 17 00:00:00 2001 From: tobi <31960611+tsmethurst@users.noreply.github.com> Date: Mon, 25 Mar 2024 18:32:24 +0100 Subject: [feature] User-selectable preset CSS themes for accounts (#2777) * [feature] User-selectable preset themes * docs, more theme stuff * lint, tests * fix css name * correct some little issues * add another theme * fix poll background * okay last theme i swear * make retrieval of apimodel themes more conventional * preallocate stylesheet slices --- web/source/settings/lib/query/user/index.ts | 7 +++++++ web/source/settings/lib/types/theme.ts | 24 ++++++++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 web/source/settings/lib/types/theme.ts (limited to 'web/source/settings/lib') diff --git a/web/source/settings/lib/query/user/index.ts b/web/source/settings/lib/query/user/index.ts index 8cf64197b..8c4e5215b 100644 --- a/web/source/settings/lib/query/user/index.ts +++ b/web/source/settings/lib/query/user/index.ts @@ -23,6 +23,7 @@ import type { MoveAccountFormData, UpdateAliasesFormData } from "../../types/migration"; +import type { Theme } from "../../types/theme"; const extended = gtsApi.injectEndpoints({ endpoints: (build) => ({ @@ -66,6 +67,11 @@ const extended = gtsApi.injectEndpoints({ url: `/api/v1/accounts/move`, body: data }) + }), + accountThemes: build.query({ + query: () => ({ + url: `/api/v1/accounts/themes` + }) }) }) }); @@ -75,4 +81,5 @@ export const { usePasswordChangeMutation, useAliasAccountMutation, useMoveAccountMutation, + useAccountThemesQuery, } = extended; diff --git a/web/source/settings/lib/types/theme.ts b/web/source/settings/lib/types/theme.ts new file mode 100644 index 000000000..e605192f8 --- /dev/null +++ b/web/source/settings/lib/types/theme.ts @@ -0,0 +1,24 @@ +/* + GoToSocial + Copyright (C) GoToSocial Authors admin@gotosocial.org + SPDX-License-Identifier: AGPL-3.0-or-later + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ + +export interface Theme { + title: string; + description: string; + file_name: string; +} -- cgit v1.2.3