mirror of
https://github.com/usememos/memos.git
synced 2025-02-21 21:57:47 +01:00
chore: code clean
This commit is contained in:
parent
4f05c972d5
commit
9faee68dab
@ -5,10 +5,9 @@ import { toast } from "react-hot-toast";
|
|||||||
import { useTranslation } from "react-i18next";
|
import { useTranslation } from "react-i18next";
|
||||||
import useLocalStorage from "react-use/lib/useLocalStorage";
|
import useLocalStorage from "react-use/lib/useLocalStorage";
|
||||||
import { TAB_SPACE_WIDTH, UNKNOWN_ID, VISIBILITY_SELECTOR_ITEMS } from "@/helpers/consts";
|
import { TAB_SPACE_WIDTH, UNKNOWN_ID, VISIBILITY_SELECTOR_ITEMS } from "@/helpers/consts";
|
||||||
import { clearContentQueryParam } from "@/helpers/utils";
|
|
||||||
import useCurrentUser from "@/hooks/useCurrentUser";
|
import useCurrentUser from "@/hooks/useCurrentUser";
|
||||||
import { getMatchedNodes } from "@/labs/marked";
|
import { getMatchedNodes } from "@/labs/marked";
|
||||||
import { useFilterStore, useGlobalStore, useMemoStore, useResourceStore, useTagStore } from "@/store/module";
|
import { useGlobalStore, useMemoStore, useResourceStore, useTagStore } from "@/store/module";
|
||||||
import { useUserV1Store } from "@/store/v1";
|
import { useUserV1Store } from "@/store/v1";
|
||||||
import { Resource } from "@/types/proto/api/v2/resource_service";
|
import { Resource } from "@/types/proto/api/v2/resource_service";
|
||||||
import { UserSetting, User_Role } from "@/types/proto/api/v2/user_service";
|
import { UserSetting, User_Role } from "@/types/proto/api/v2/user_service";
|
||||||
@ -52,7 +51,6 @@ const MemoEditor = (props: Props) => {
|
|||||||
state: { systemStatus },
|
state: { systemStatus },
|
||||||
} = useGlobalStore();
|
} = useGlobalStore();
|
||||||
const userV1Store = useUserV1Store();
|
const userV1Store = useUserV1Store();
|
||||||
const filterStore = useFilterStore();
|
|
||||||
const memoStore = useMemoStore();
|
const memoStore = useMemoStore();
|
||||||
const tagStore = useTagStore();
|
const tagStore = useTagStore();
|
||||||
const resourceStore = useResourceStore();
|
const resourceStore = useResourceStore();
|
||||||
@ -324,10 +322,8 @@ const MemoEditor = (props: Props) => {
|
|||||||
resourceIdList: state.resourceList.map((resource) => resource.id),
|
resourceIdList: state.resourceList.map((resource) => resource.id),
|
||||||
relationList: state.relationList,
|
relationList: state.relationList,
|
||||||
});
|
});
|
||||||
filterStore.clearFilter();
|
|
||||||
}
|
}
|
||||||
editorRef.current?.setContent("");
|
editorRef.current?.setContent("");
|
||||||
clearContentQueryParam();
|
|
||||||
} catch (error: any) {
|
} catch (error: any) {
|
||||||
console.error(error);
|
console.error(error);
|
||||||
toast.error(error.response.data.message);
|
toast.error(error.response.data.message);
|
||||||
|
@ -64,7 +64,7 @@ const MemoList: React.FC = () => {
|
|||||||
return shouldShow;
|
return shouldShow;
|
||||||
})
|
})
|
||||||
: memos
|
: memos
|
||||||
).filter((memo) => memo.creatorUsername === username && memo.rowStatus === "NORMAL" && !memo.parent);
|
).filter((memo) => memo.creatorUsername === username && memo.rowStatus === "NORMAL");
|
||||||
|
|
||||||
const pinnedMemos = shownMemos.filter((m) => m.pinned);
|
const pinnedMemos = shownMemos.filter((m) => m.pinned);
|
||||||
const unpinnedMemos = shownMemos.filter((m) => !m.pinned);
|
const unpinnedMemos = shownMemos.filter((m) => !m.pinned);
|
||||||
|
@ -1,13 +1,14 @@
|
|||||||
import { Button, Divider, Input, Option, Select } from "@mui/joy";
|
import { Button, Divider, Input, Option, Select } from "@mui/joy";
|
||||||
import { useState } from "react";
|
import { useState } from "react";
|
||||||
import { toast } from "react-hot-toast";
|
import { toast } from "react-hot-toast";
|
||||||
|
import { Link } from "react-router-dom";
|
||||||
import { VISIBILITY_SELECTOR_ITEMS } from "@/helpers/consts";
|
import { VISIBILITY_SELECTOR_ITEMS } from "@/helpers/consts";
|
||||||
import { useGlobalStore } from "@/store/module";
|
import { useGlobalStore } from "@/store/module";
|
||||||
import { useUserV1Store } from "@/store/v1";
|
import { useUserV1Store } from "@/store/v1";
|
||||||
import { UserSetting } from "@/types/proto/api/v2/user_service";
|
import { UserSetting } from "@/types/proto/api/v2/user_service";
|
||||||
import { useTranslate } from "@/utils/i18n";
|
import { useTranslate } from "@/utils/i18n";
|
||||||
import AppearanceSelect from "../AppearanceSelect";
|
import AppearanceSelect from "../AppearanceSelect";
|
||||||
import LearnMore from "../LearnMore";
|
import Icon from "../Icon";
|
||||||
import LocaleSelect from "../LocaleSelect";
|
import LocaleSelect from "../LocaleSelect";
|
||||||
import VisibilityIcon from "../VisibilityIcon";
|
import VisibilityIcon from "../VisibilityIcon";
|
||||||
import WebhookSection from "./WebhookSection";
|
import WebhookSection from "./WebhookSection";
|
||||||
@ -103,25 +104,36 @@ const PreferencesSection = () => {
|
|||||||
|
|
||||||
<Divider className="!mt-3 !my-4" />
|
<Divider className="!mt-3 !my-4" />
|
||||||
|
|
||||||
<div className="mb-2 w-full flex flex-row justify-between items-center">
|
<div className="w-full flex flex-col justify-start items-start">
|
||||||
<div className="w-auto flex items-center">
|
<div className="mb-2 w-full flex flex-row justify-between items-center">
|
||||||
<span className="text-sm mr-1">{t("setting.preference-section.telegram-user-id")}</span>
|
<div className="w-auto flex items-center">
|
||||||
<LearnMore url="https://usememos.com/docs/integration/telegram-bot" />
|
<span className="text-sm mr-1">{t("setting.preference-section.telegram-user-id")}</span>
|
||||||
|
</div>
|
||||||
|
<Button variant="outlined" color="neutral" onClick={handleSaveTelegramUserId}>
|
||||||
|
{t("common.save")}
|
||||||
|
</Button>
|
||||||
|
</div>
|
||||||
|
<Input
|
||||||
|
className="w-full"
|
||||||
|
sx={{
|
||||||
|
fontFamily: "monospace",
|
||||||
|
fontSize: "14px",
|
||||||
|
}}
|
||||||
|
value={telegramUserId}
|
||||||
|
onChange={(event) => handleTelegramUserIdChanged(event.target.value)}
|
||||||
|
placeholder={t("setting.preference-section.telegram-user-id-placeholder")}
|
||||||
|
/>
|
||||||
|
<div className="w-full">
|
||||||
|
<Link
|
||||||
|
className="text-gray-500 text-sm inline-flex flex-row justify-start items-center mt-2 hover:underline hover:text-blue-600"
|
||||||
|
to="https://usememos.com/docs/integration/telegram-bot"
|
||||||
|
target="_blank"
|
||||||
|
>
|
||||||
|
{t("common.learn-more")}
|
||||||
|
<Icon.ExternalLink className="inline w-4 h-auto ml-1" />
|
||||||
|
</Link>
|
||||||
</div>
|
</div>
|
||||||
<Button variant="outlined" color="neutral" onClick={handleSaveTelegramUserId}>
|
|
||||||
{t("common.save")}
|
|
||||||
</Button>
|
|
||||||
</div>
|
</div>
|
||||||
<Input
|
|
||||||
className="w-full"
|
|
||||||
sx={{
|
|
||||||
fontFamily: "monospace",
|
|
||||||
fontSize: "14px",
|
|
||||||
}}
|
|
||||||
value={telegramUserId}
|
|
||||||
onChange={(event) => handleTelegramUserIdChanged(event.target.value)}
|
|
||||||
placeholder={t("setting.preference-section.telegram-user-id-placeholder")}
|
|
||||||
/>
|
|
||||||
|
|
||||||
<Divider className="!my-4" />
|
<Divider className="!my-4" />
|
||||||
|
|
||||||
|
@ -9,7 +9,6 @@ import { useTranslate } from "@/utils/i18n";
|
|||||||
import { showCommonDialog } from "../Dialog/CommonDialog";
|
import { showCommonDialog } from "../Dialog/CommonDialog";
|
||||||
import showDisablePasswordLoginDialog from "../DisablePasswordLoginDialog";
|
import showDisablePasswordLoginDialog from "../DisablePasswordLoginDialog";
|
||||||
import Icon from "../Icon";
|
import Icon from "../Icon";
|
||||||
import LearnMore from "../LearnMore";
|
|
||||||
import showUpdateCustomizedProfileDialog from "../UpdateCustomizedProfileDialog";
|
import showUpdateCustomizedProfileDialog from "../UpdateCustomizedProfileDialog";
|
||||||
import "@/less/settings/system-section.less";
|
import "@/less/settings/system-section.less";
|
||||||
|
|
||||||
@ -319,10 +318,6 @@ const SystemSection = () => {
|
|||||||
<div className="flex flex-row items-center">
|
<div className="flex flex-row items-center">
|
||||||
<div className="w-auto flex items-center">
|
<div className="w-auto flex items-center">
|
||||||
<span className="text-sm mr-1">{t("setting.system-section.telegram-bot-token")}</span>
|
<span className="text-sm mr-1">{t("setting.system-section.telegram-bot-token")}</span>
|
||||||
<LearnMore
|
|
||||||
url="https://usememos.com/docs/integration/telegram-bot"
|
|
||||||
title={t("setting.system-section.telegram-bot-token-description")}
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<Button variant="outlined" color="neutral" onClick={handleSaveTelegramBotToken}>
|
<Button variant="outlined" color="neutral" onClick={handleSaveTelegramBotToken}>
|
||||||
@ -339,6 +334,16 @@ const SystemSection = () => {
|
|||||||
value={telegramBotToken}
|
value={telegramBotToken}
|
||||||
onChange={(event) => handleTelegramBotTokenChanged(event.target.value)}
|
onChange={(event) => handleTelegramBotTokenChanged(event.target.value)}
|
||||||
/>
|
/>
|
||||||
|
<div className="w-full">
|
||||||
|
<Link
|
||||||
|
className="text-gray-500 text-sm inline-flex flex-row justify-start items-center mt-2 hover:underline hover:text-blue-600"
|
||||||
|
to="https://usememos.com/docs/integration/telegram-bot"
|
||||||
|
target="_blank"
|
||||||
|
>
|
||||||
|
{t("common.learn-more")}
|
||||||
|
<Icon.ExternalLink className="inline w-4 h-auto ml-1" />
|
||||||
|
</Link>
|
||||||
|
</div>
|
||||||
<Divider className="!mt-3 !my-4" />
|
<Divider className="!mt-3 !my-4" />
|
||||||
<div className="form-label">
|
<div className="form-label">
|
||||||
<span className="normal-text">{t("setting.system-section.additional-style")}</span>
|
<span className="normal-text">{t("setting.system-section.additional-style")}</span>
|
||||||
|
@ -83,13 +83,3 @@ export const formatBytes = (bytes: number) => {
|
|||||||
i = Math.floor(Math.log(bytes) / Math.log(k));
|
i = Math.floor(Math.log(bytes) / Math.log(k));
|
||||||
return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + " " + sizes[i];
|
return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + " " + sizes[i];
|
||||||
};
|
};
|
||||||
|
|
||||||
export const clearContentQueryParam = () => {
|
|
||||||
const urlParams = new URLSearchParams(window.location.search);
|
|
||||||
urlParams.delete("content");
|
|
||||||
let url = window.location.pathname;
|
|
||||||
if (urlParams.toString()) {
|
|
||||||
url += `?${urlParams.toString()}`;
|
|
||||||
}
|
|
||||||
window.history.replaceState({}, "", url);
|
|
||||||
};
|
|
||||||
|
@ -49,7 +49,7 @@ const Explore = () => {
|
|||||||
: memos;
|
: memos;
|
||||||
|
|
||||||
const sortedMemos = fetchedMemos
|
const sortedMemos = fetchedMemos
|
||||||
.filter((m) => m.rowStatus === "NORMAL" && m.visibility !== "PRIVATE" && !m.parent)
|
.filter((m) => m.rowStatus === "NORMAL" && m.visibility !== "PRIVATE")
|
||||||
.sort((mi, mj) => mj.displayTs - mi.displayTs);
|
.sort((mi, mj) => mj.displayTs - mi.displayTs);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
import { Option, Select } from "@mui/joy";
|
import { Option, Select } from "@mui/joy";
|
||||||
import { useState } from "react";
|
import { useState } from "react";
|
||||||
import BetaBadge from "@/components/BetaBadge";
|
|
||||||
import Icon from "@/components/Icon";
|
import Icon from "@/components/Icon";
|
||||||
import MobileHeader from "@/components/MobileHeader";
|
import MobileHeader from "@/components/MobileHeader";
|
||||||
import MemberSection from "@/components/Settings/MemberSection";
|
import MemberSection from "@/components/Settings/MemberSection";
|
||||||
@ -82,13 +81,13 @@ const Setting = () => {
|
|||||||
onClick={() => handleSectionSelectorItemClick("storage")}
|
onClick={() => handleSectionSelectorItemClick("storage")}
|
||||||
className={`section-item ${state.selectedSection === "storage" ? "selected" : ""}`}
|
className={`section-item ${state.selectedSection === "storage" ? "selected" : ""}`}
|
||||||
>
|
>
|
||||||
<Icon.Database className="w-4 h-auto mr-2 opacity-80" /> {t("setting.storage")} <BetaBadge />
|
<Icon.Database className="w-4 h-auto mr-2 opacity-80" /> {t("setting.storage")}
|
||||||
</span>
|
</span>
|
||||||
<span
|
<span
|
||||||
onClick={() => handleSectionSelectorItemClick("sso")}
|
onClick={() => handleSectionSelectorItemClick("sso")}
|
||||||
className={`section-item ${state.selectedSection === "sso" ? "selected" : ""}`}
|
className={`section-item ${state.selectedSection === "sso" ? "selected" : ""}`}
|
||||||
>
|
>
|
||||||
<Icon.Key className="w-4 h-auto mr-2 opacity-80" /> {t("setting.sso")} <BetaBadge />
|
<Icon.Key className="w-4 h-auto mr-2 opacity-80" /> {t("setting.sso")}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</>
|
</>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user