From 903035ecfcca899d86aa87c9c7372cad0ce36053 Mon Sep 17 00:00:00 2001 From: Athou Date: Fri, 14 Feb 2025 13:49:46 +0100 Subject: [PATCH] formatting --- commafeed-client/src/app/entries/thunks.ts | 14 ++++++++++++++ commafeed-client/src/app/redirect/thunks.ts | 18 +++++++++++++++--- commafeed-client/src/app/tree/thunks.ts | 1 + commafeed-client/src/app/user/thunks.ts | 18 ++++++++++++++++++ 4 files changed, 48 insertions(+), 3 deletions(-) diff --git a/commafeed-client/src/app/entries/thunks.ts b/commafeed-client/src/app/entries/thunks.ts index cab7d378..f32af338 100644 --- a/commafeed-client/src/app/entries/thunks.ts +++ b/commafeed-client/src/app/entries/thunks.ts @@ -11,6 +11,7 @@ import { flushSync } from "react-dom" const getEndpoint = (sourceType: EntrySourceType) => sourceType === "category" || sourceType === "tag" ? client.category.getEntries : client.feed.getEntries + export const loadEntries = createAppAsyncThunk( "entries/load", async ( @@ -28,6 +29,7 @@ export const loadEntries = createAppAsyncThunk( return result.data } ) + export const loadMoreEntries = createAppAsyncThunk("entries/loadMore", async (_, thunkApi) => { const state = thunkApi.getState() const { source } = state.entries @@ -37,6 +39,7 @@ export const loadMoreEntries = createAppAsyncThunk("entries/loadMore", async (_, const result = await endpoint(buildGetEntriesPaginatedRequest(state, source, offset)) return result.data }) + const buildGetEntriesPaginatedRequest = (state: RootState, source: EntrySource, offset: number) => ({ id: source.type === "tag" ? Constants.categories.all.id : source.id, order: state.user.settings?.readingOrder, @@ -46,15 +49,18 @@ const buildGetEntriesPaginatedRequest = (state: RootState, source: EntrySource, tag: source.type === "tag" ? source.id : undefined, keywords: state.entries.search, }) + export const reloadEntries = createAppAsyncThunk("entries/reload", (arg, thunkApi) => { const state = thunkApi.getState() thunkApi.dispatch(loadEntries({ source: state.entries.source, clearSearch: false })) }) + export const search = createAppAsyncThunk("entries/search", (arg: string, thunkApi) => { const state = thunkApi.getState() thunkApi.dispatch(setSearch(arg)) thunkApi.dispatch(loadEntries({ source: state.entries.source, clearSearch: false })) }) + export const markEntry = createAppAsyncThunk( "entries/entry/mark", (arg: { entry: Entry; read: boolean }) => { @@ -67,6 +73,7 @@ export const markEntry = createAppAsyncThunk( condition: arg => arg.entry.markable && arg.entry.read !== arg.read, } ) + export const markMultipleEntries = createAppAsyncThunk( "entries/entry/markMultiple", async ( @@ -84,6 +91,7 @@ export const markMultipleEntries = createAppAsyncThunk( thunkApi.dispatch(reloadTree()) } ) + export const markEntriesUpToEntry = createAppAsyncThunk("entries/entry/upToEntry", (arg: Entry, thunkApi) => { const state = thunkApi.getState() const { entries } = state.entries @@ -98,6 +106,7 @@ export const markEntriesUpToEntry = createAppAsyncThunk("entries/entry/upToEntry }) ) }) + export const markAllEntries = createAppAsyncThunk( "entries/entry/markAll", async ( @@ -113,6 +122,7 @@ export const markAllEntries = createAppAsyncThunk( thunkApi.dispatch(reloadTree()) } ) + export const starEntry = createAppAsyncThunk( "entries/entry/star", (arg: { entry: Entry; starred: boolean }) => { @@ -126,6 +136,7 @@ export const starEntry = createAppAsyncThunk( condition: arg => arg.entry.markable && arg.entry.starred !== arg.starred, } ) + export const selectEntry = createAppAsyncThunk( "entries/entry/select", ( @@ -191,6 +202,7 @@ export const selectEntry = createAppAsyncThunk( } } ) + const scrollToEntry = (entryElement: HTMLElement, margin: number, scrollSpeed: number | undefined, onScrollEnded: () => void) => { const header = document.getElementById(Constants.dom.headerId)?.getBoundingClientRect() const offset = (header?.bottom ?? 0) + margin @@ -228,6 +240,7 @@ export const selectPreviousEntry = createAppAsyncThunk( } } ) + export const selectNextEntry = createAppAsyncThunk( "entries/entry/selectNext", async ( @@ -261,6 +274,7 @@ export const selectNextEntry = createAppAsyncThunk( } } ) + export const tagEntry = createAppAsyncThunk("entries/entry/tag", async (arg: TagRequest, thunkApi) => { await client.entry.tag(arg) thunkApi.dispatch(reloadTags()) diff --git a/commafeed-client/src/app/redirect/thunks.ts b/commafeed-client/src/app/redirect/thunks.ts index 981ce456..00ce088f 100644 --- a/commafeed-client/src/app/redirect/thunks.ts +++ b/commafeed-client/src/app/redirect/thunks.ts @@ -3,43 +3,55 @@ import { Constants } from "app/constants" import { redirectTo } from "app/redirect/slice" export const redirectToLogin = createAppAsyncThunk("redirect/login", (_, thunkApi) => thunkApi.dispatch(redirectTo("/login"))) + export const redirectToRegistration = createAppAsyncThunk("redirect/register", (_, thunkApi) => thunkApi.dispatch(redirectTo("/register"))) -export const redirectToPasswordRecovery = createAppAsyncThunk("redirect/passwordRecovery", (_, thunkApi) => - thunkApi.dispatch(redirectTo("/passwordRecovery")) -) + export const redirectToApiDocumentation = createAppAsyncThunk("redirect/api", (_, thunkApi) => thunkApi.dispatch(redirectTo("/api"))) export const redirectToSelectedSource = createAppAsyncThunk("redirect/selectedSource", (_, thunkApi) => { const { source } = thunkApi.getState().entries thunkApi.dispatch(redirectTo(`/app/${source.type}/${source.id}`)) }) + export const redirectToCategory = createAppAsyncThunk("redirect/category", (id: string, thunkApi) => thunkApi.dispatch(redirectTo(`/app/category/${id}`)) ) + export const redirectToRootCategory = createAppAsyncThunk( "redirect/category/root", async (_, thunkApi) => await thunkApi.dispatch(redirectToCategory(Constants.categories.all.id)) ) + export const redirectToCategoryDetails = createAppAsyncThunk("redirect/category/details", (id: string, thunkApi) => thunkApi.dispatch(redirectTo(`/app/category/${id}/details`)) ) + export const redirectToFeed = createAppAsyncThunk("redirect/feed", (id: string | number, thunkApi) => thunkApi.dispatch(redirectTo(`/app/feed/${id}`)) ) + export const redirectToFeedDetails = createAppAsyncThunk("redirect/feed/details", (id: string, thunkApi) => thunkApi.dispatch(redirectTo(`/app/feed/${id}/details`)) ) + export const redirectToTag = createAppAsyncThunk("redirect/tag", (id: string, thunkApi) => thunkApi.dispatch(redirectTo(`/app/tag/${id}`))) + export const redirectToTagDetails = createAppAsyncThunk("redirect/tag/details", (id: string, thunkApi) => thunkApi.dispatch(redirectTo(`/app/tag/${id}/details`)) ) + export const redirectToAdd = createAppAsyncThunk("redirect/add", (_, thunkApi) => thunkApi.dispatch(redirectTo("/app/add"))) + export const redirectToSettings = createAppAsyncThunk("redirect/settings", (_, thunkApi) => thunkApi.dispatch(redirectTo("/app/settings"))) + export const redirectToAdminUsers = createAppAsyncThunk("redirect/admin/users", (_, thunkApi) => thunkApi.dispatch(redirectTo("/app/admin/users")) ) + export const redirectToMetrics = createAppAsyncThunk("redirect/admin/metrics", (_, thunkApi) => thunkApi.dispatch(redirectTo("/app/admin/metrics")) ) + export const redirectToDonate = createAppAsyncThunk("redirect/donate", (_, thunkApi) => thunkApi.dispatch(redirectTo("/app/donate"))) + export const redirectToAbout = createAppAsyncThunk("redirect/about", (_, thunkApi) => thunkApi.dispatch(redirectTo("/app/about"))) diff --git a/commafeed-client/src/app/tree/thunks.ts b/commafeed-client/src/app/tree/thunks.ts index 32f6f185..83ee2b66 100644 --- a/commafeed-client/src/app/tree/thunks.ts +++ b/commafeed-client/src/app/tree/thunks.ts @@ -3,6 +3,7 @@ import { client } from "app/client" import type { CollapseRequest } from "app/types" export const reloadTree = createAppAsyncThunk("tree/reload", async () => await client.category.getRoot().then(r => r.data)) + export const collapseTreeCategory = createAppAsyncThunk( "tree/category/collapse", async (req: CollapseRequest) => await client.category.collapse(req) diff --git a/commafeed-client/src/app/user/thunks.ts b/commafeed-client/src/app/user/thunks.ts index 4148881e..6499677d 100644 --- a/commafeed-client/src/app/user/thunks.ts +++ b/commafeed-client/src/app/user/thunks.ts @@ -4,45 +4,55 @@ import { reloadEntries } from "app/entries/thunks" import type { IconDisplayMode, ReadingMode, ReadingOrder, ScrollMode, SharingSettings } from "app/types" export const reloadSettings = createAppAsyncThunk("settings/reload", async () => await client.user.getSettings().then(r => r.data)) + export const reloadProfile = createAppAsyncThunk("profile/reload", async () => await client.user.getProfile().then(r => r.data)) + export const reloadTags = createAppAsyncThunk("entries/tags", async () => await client.entry.getTags().then(r => r.data)) + export const changeReadingMode = createAppAsyncThunk("settings/readingMode", (readingMode: ReadingMode, thunkApi) => { const { settings } = thunkApi.getState().user if (!settings) return client.user.saveSettings({ ...settings, readingMode }) thunkApi.dispatch(reloadEntries()) }) + export const changeReadingOrder = createAppAsyncThunk("settings/readingOrder", (readingOrder: ReadingOrder, thunkApi) => { const { settings } = thunkApi.getState().user if (!settings) return client.user.saveSettings({ ...settings, readingOrder }) thunkApi.dispatch(reloadEntries()) }) + export const changeLanguage = createAppAsyncThunk("settings/language", (language: string, thunkApi) => { const { settings } = thunkApi.getState().user if (!settings) return client.user.saveSettings({ ...settings, language }) }) + export const changeScrollSpeed = createAppAsyncThunk("settings/scrollSpeed", (speed: boolean, thunkApi) => { const { settings } = thunkApi.getState().user if (!settings) return client.user.saveSettings({ ...settings, scrollSpeed: speed ? 400 : 0 }) }) + export const changeShowRead = createAppAsyncThunk("settings/showRead", (showRead: boolean, thunkApi) => { const { settings } = thunkApi.getState().user if (!settings) return client.user.saveSettings({ ...settings, showRead }) }) + export const changeScrollMarks = createAppAsyncThunk("settings/scrollMarks", (scrollMarks: boolean, thunkApi) => { const { settings } = thunkApi.getState().user if (!settings) return client.user.saveSettings({ ...settings, scrollMarks }) }) + export const changeScrollMode = createAppAsyncThunk("settings/scrollMode", (scrollMode: ScrollMode, thunkApi) => { const { settings } = thunkApi.getState().user if (!settings) return client.user.saveSettings({ ...settings, scrollMode }) }) + export const changeEntriesToKeepOnTopWhenScrolling = createAppAsyncThunk( "settings/entriesToKeepOnTopWhenScrolling", (entriesToKeepOnTopWhenScrolling: number, thunkApi) => { @@ -51,6 +61,7 @@ export const changeEntriesToKeepOnTopWhenScrolling = createAppAsyncThunk( client.user.saveSettings({ ...settings, entriesToKeepOnTopWhenScrolling }) } ) + export const changeStarIconDisplayMode = createAppAsyncThunk( "settings/starIconDisplayMode", (starIconDisplayMode: IconDisplayMode, thunkApi) => { @@ -59,6 +70,7 @@ export const changeStarIconDisplayMode = createAppAsyncThunk( client.user.saveSettings({ ...settings, starIconDisplayMode }) } ) + export const changeExternalLinkIconDisplayMode = createAppAsyncThunk( "settings/externalLinkIconDisplayMode", (externalLinkIconDisplayMode: IconDisplayMode, thunkApi) => { @@ -67,6 +79,7 @@ export const changeExternalLinkIconDisplayMode = createAppAsyncThunk( client.user.saveSettings({ ...settings, externalLinkIconDisplayMode }) } ) + export const changeMarkAllAsReadConfirmation = createAppAsyncThunk( "settings/markAllAsReadConfirmation", (markAllAsReadConfirmation: boolean, thunkApi) => { @@ -75,26 +88,31 @@ export const changeMarkAllAsReadConfirmation = createAppAsyncThunk( client.user.saveSettings({ ...settings, markAllAsReadConfirmation }) } ) + export const changeCustomContextMenu = createAppAsyncThunk("settings/customContextMenu", (customContextMenu: boolean, thunkApi) => { const { settings } = thunkApi.getState().user if (!settings) return client.user.saveSettings({ ...settings, customContextMenu }) }) + export const changeMobileFooter = createAppAsyncThunk("settings/mobileFooter", (mobileFooter: boolean, thunkApi) => { const { settings } = thunkApi.getState().user if (!settings) return client.user.saveSettings({ ...settings, mobileFooter }) }) + export const changeUnreadCountTitle = createAppAsyncThunk("settings/unreadCountTitle", (unreadCountTitle: boolean, thunkApi) => { const { settings } = thunkApi.getState().user if (!settings) return client.user.saveSettings({ ...settings, unreadCountTitle }) }) + export const changeUnreadCountFavicon = createAppAsyncThunk("settings/unreadCountFavicon", (unreadCountFavicon: boolean, thunkApi) => { const { settings } = thunkApi.getState().user if (!settings) return client.user.saveSettings({ ...settings, unreadCountFavicon }) }) + export const changeSharingSetting = createAppAsyncThunk( "settings/sharingSetting", (