diff --git a/icons/mgc/AZ_sort_ascending_letters_cute_re.svg b/icons/mgc/AZ_sort_ascending_letters_cute_re.svg new file mode 100644 index 000000000..cd207ef4a --- /dev/null +++ b/icons/mgc/AZ_sort_ascending_letters_cute_re.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icons/mgc/AZ_sort_descending_letters_cute_re.svg b/icons/mgc/AZ_sort_descending_letters_cute_re.svg new file mode 100644 index 000000000..2ae960c17 --- /dev/null +++ b/icons/mgc/AZ_sort_descending_letters_cute_re.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icons/mgc/list_collapse_cute_re.svg b/icons/mgc/list_collapse_cute_re.svg new file mode 100644 index 000000000..a7b71c3d1 --- /dev/null +++ b/icons/mgc/list_collapse_cute_re.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icons/mgc/list_expansion_cute_re.svg b/icons/mgc/list_expansion_cute_re.svg new file mode 100644 index 000000000..b9747bbac --- /dev/null +++ b/icons/mgc/list_expansion_cute_re.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icons/mgc/sort_ascending_cute_re.svg b/icons/mgc/sort_ascending_cute_re.svg new file mode 100644 index 000000000..d333c3d02 --- /dev/null +++ b/icons/mgc/sort_ascending_cute_re.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icons/mgc/sort_descending_cute_re.svg b/icons/mgc/sort_descending_cute_re.svg new file mode 100644 index 000000000..292e82e5d --- /dev/null +++ b/icons/mgc/sort_descending_cute_re.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/renderer/src/modules/feed-column/atom.ts b/src/renderer/src/modules/feed-column/atom.ts new file mode 100644 index 000000000..bc0a44d42 --- /dev/null +++ b/src/renderer/src/modules/feed-column/atom.ts @@ -0,0 +1,41 @@ +import { createAtomHooks } from "@renderer/lib/jotai" +import { getStorageNS } from "@renderer/lib/ns" +import { atomWithStorage } from "jotai/utils" + +export type FeedListSortBy = "count" | "alphabetical" +export type FeedListSortOrder = "asc" | "desc" +const [ + , + , + useFeedListSort, + , + getFeedListSort, + setFeedListSort, + useFeedListSortSelector, +] = createAtomHooks( + atomWithStorage( + getStorageNS("feedListSort"), + { + by: "count" as FeedListSortBy, + order: "desc" as FeedListSortOrder, + }, + undefined, + { getOnInit: true }, + ), +) + +export { getFeedListSort, useFeedListSort, useFeedListSortSelector } + +export const setFeedListSortBy = (by: FeedListSortBy) => { + setFeedListSort({ + ...getFeedListSort(), + by, + }) +} + +export const setFeedListSortOrder = (order: FeedListSortOrder) => { + setFeedListSort({ + ...getFeedListSort(), + order, + }) +}