diff --git a/web/src/components/HomeSidebar/TagsSection.tsx b/web/src/components/HomeSidebar/TagsSection.tsx index 2e64dbbd..8411de15 100644 --- a/web/src/components/HomeSidebar/TagsSection.tsx +++ b/web/src/components/HomeSidebar/TagsSection.tsx @@ -68,7 +68,7 @@ const TagsSection = (props: Props) => { - + Tree mode setTreeMode(event.target.checked)} /> diff --git a/web/src/components/MemoDisplaySettingMenu.tsx b/web/src/components/MemoDisplaySettingMenu.tsx new file mode 100644 index 00000000..97e242ce --- /dev/null +++ b/web/src/components/MemoDisplaySettingMenu.tsx @@ -0,0 +1,43 @@ +import { Option, Select } from "@mui/joy"; +import clsx from "clsx"; +import { useMemoFilterStore } from "@/store/v1"; +import Icon from "./Icon"; +import { Popover, PopoverContent, PopoverTrigger } from "./ui/Popover"; + +interface Props { + className?: string; +} + +const MemoDisplaySettingMenu = ({ className }: Props) => { + const memoFilterStore = useMemoFilterStore(); + const isApplying = Boolean(memoFilterStore.orderByTimeAsc) !== false; + + return ( + + + + + + + + Order by + + Display Time + + + + Direction + memoFilterStore.setOrderByTimeAsc(Boolean(value))}> + DESC + ASC + + + + + + ); +}; + +export default MemoDisplaySettingMenu; diff --git a/web/src/components/MemoFilters.tsx b/web/src/components/MemoFilters.tsx index 639b43b1..70fd6f39 100644 --- a/web/src/components/MemoFilters.tsx +++ b/web/src/components/MemoFilters.tsx @@ -40,15 +40,6 @@ const MemoFilters = () => { ))} - memoFilterStore.setOrderByTimeAsc(!memoFilterStore.orderByTimeAsc)} - > - - - {memoFilterStore.orderByTimeAsc ? "Asc" : "Desc"} - - ); diff --git a/web/src/components/SearchBar.tsx b/web/src/components/SearchBar.tsx index 392381b2..27450fdd 100644 --- a/web/src/components/SearchBar.tsx +++ b/web/src/components/SearchBar.tsx @@ -2,6 +2,7 @@ import { useState } from "react"; import { useMemoFilterStore } from "@/store/v1"; import { useTranslate } from "@/utils/i18n"; import Icon from "./Icon"; +import MemoDisplaySettingMenu from "./MemoDisplaySettingMenu"; const SearchBar = () => { const t = useTranslate(); @@ -28,7 +29,7 @@ const SearchBar = () => { return ( - + { onChange={onTextChange} onKeyDown={onKeyDown} /> + ); }; diff --git a/web/src/components/UserStatisticsView.tsx b/web/src/components/UserStatisticsView.tsx index be1cb5b3..0421217d 100644 --- a/web/src/components/UserStatisticsView.tsx +++ b/web/src/components/UserStatisticsView.tsx @@ -90,7 +90,7 @@ const UserStatisticsView = () => { - + Refresh diff --git a/web/src/pages/Archived.tsx b/web/src/pages/Archived.tsx index 034de908..18369d60 100644 --- a/web/src/pages/Archived.tsx +++ b/web/src/pages/Archived.tsx @@ -27,7 +27,7 @@ const Archived = () => { const sortedMemos = memoList.value .filter((memo) => memo.rowStatus === RowStatus.ARCHIVED) .sort((a, b) => - memoFilterStore.orderByTimeAsc && memoFilterStore.filters.length > 0 + memoFilterStore.orderByTimeAsc ? dayjs(a.displayTime).unix() - dayjs(b.displayTime).unix() : dayjs(b.displayTime).unix() - dayjs(a.displayTime).unix(), ); @@ -49,7 +49,7 @@ const Archived = () => { tagSearch.push(`"${filter.value}"`); } } - if (memoFilterStore.orderByTimeAsc && memoFilterStore.filters.length > 0) { + if (memoFilterStore.orderByTimeAsc) { filters.push(`order_by_time_asc == true`); } if (contentSearch.length > 0) { diff --git a/web/src/pages/Explore.tsx b/web/src/pages/Explore.tsx index 20cc9f80..9fced650 100644 --- a/web/src/pages/Explore.tsx +++ b/web/src/pages/Explore.tsx @@ -24,7 +24,7 @@ const Explore = () => { const [isRequesting, setIsRequesting] = useState(true); const [nextPageToken, setNextPageToken] = useState(""); const sortedMemos = memoList.value.sort((a, b) => - memoFilterStore.orderByTimeAsc && memoFilterStore.filters.length > 0 + memoFilterStore.orderByTimeAsc ? dayjs(a.displayTime).unix() - dayjs(b.displayTime).unix() : dayjs(b.displayTime).unix() - dayjs(a.displayTime).unix(), ); @@ -46,7 +46,7 @@ const Explore = () => { tagSearch.push(`"${filter.value}"`); } } - if (memoFilterStore.orderByTimeAsc && memoFilterStore.filters.length > 0) { + if (memoFilterStore.orderByTimeAsc) { filters.push(`order_by_time_asc == true`); } if (contentSearch.length > 0) { diff --git a/web/src/pages/Home.tsx b/web/src/pages/Home.tsx index 7bb494e2..22add5e8 100644 --- a/web/src/pages/Home.tsx +++ b/web/src/pages/Home.tsx @@ -28,7 +28,7 @@ const Home = () => { const sortedMemos = memoList.value .filter((memo) => memo.rowStatus === RowStatus.ACTIVE) .sort((a, b) => - memoFilterStore.orderByTimeAsc && memoFilterStore.filters.length > 0 + memoFilterStore.orderByTimeAsc ? dayjs(a.displayTime).unix() - dayjs(b.displayTime).unix() : dayjs(b.displayTime).unix() - dayjs(a.displayTime).unix(), ) @@ -61,7 +61,7 @@ const Home = () => { filters.push(`display_time_before == ${timestampAfter + 60 * 60 * 24}`); } } - if (memoFilterStore.orderByTimeAsc && memoFilterStore.filters.length > 0) { + if (memoFilterStore.orderByTimeAsc) { filters.push(`order_by_time_asc == true`); } if (contentSearch.length > 0) { diff --git a/web/src/pages/UserProfile.tsx b/web/src/pages/UserProfile.tsx index 4649388e..7b698fd3 100644 --- a/web/src/pages/UserProfile.tsx +++ b/web/src/pages/UserProfile.tsx @@ -28,11 +28,7 @@ const UserProfile = () => { const [isRequesting, setIsRequesting] = useState(true); const [nextPageToken, setNextPageToken] = useState(""); const sortedMemos = memoList.value - .sort((a, b) => - memoFilterStore.orderByTimeAsc && memoFilterStore.filters.length > 0 - ? dayjs(a.displayTime).unix() - dayjs(b.displayTime).unix() - : dayjs(b.displayTime).unix() - dayjs(a.displayTime).unix(), - ) + .sort((a, b) => dayjs(b.displayTime).unix() - dayjs(a.displayTime).unix()) .sort((a, b) => Number(b.pinned) - Number(a.pinned)); useEffect(() => { @@ -82,9 +78,6 @@ const UserProfile = () => { tagSearch.push(`"${filter.value}"`); } } - if (memoFilterStore.orderByTimeAsc && memoFilterStore.filters.length > 0) { - filters.push(`order_by_time_asc == true`); - } if (contentSearch.length > 0) { filters.push(`content_search == [${contentSearch.join(", ")}]`); } diff --git a/web/src/theme/index.ts b/web/src/theme/index.ts index a9405043..d202c02f 100644 --- a/web/src/theme/index.ts +++ b/web/src/theme/index.ts @@ -16,6 +16,11 @@ const theme = extendTheme({ defaultProps: { size: "sm", }, + styleOverrides: { + listbox: { + zIndex: 9999, + }, + }, }, }, });