diff --git a/frontend/web/src/components/CreateAccessTokenDialog.tsx b/frontend/web/src/components/CreateAccessTokenDialog.tsx index 8332c78..1753494 100644 --- a/frontend/web/src/components/CreateAccessTokenDialog.tsx +++ b/frontend/web/src/components/CreateAccessTokenDialog.tsx @@ -3,8 +3,8 @@ import { useState } from "react"; import { toast } from "react-hot-toast"; import { useTranslation } from "react-i18next"; import { userServiceClient } from "@/grpcweb"; +import useLoading from "@/hooks/useLoading"; import { useUserStore } from "@/stores"; -import useLoading from "../hooks/useLoading"; import Icon from "./Icon"; interface Props { diff --git a/frontend/web/src/components/GenerateQRCodeDialog.tsx b/frontend/web/src/components/GenerateQRCodeDialog.tsx index 50d4c75..dcd5f03 100644 --- a/frontend/web/src/components/GenerateQRCodeDialog.tsx +++ b/frontend/web/src/components/GenerateQRCodeDialog.tsx @@ -3,8 +3,8 @@ import { QRCodeCanvas } from "qrcode.react"; import { useRef } from "react"; import { toast } from "react-hot-toast"; import { useTranslation } from "react-i18next"; +import { absolutifyLink } from "@/helpers/utils"; import { Shortcut } from "@/types/proto/api/v1/shortcut_service"; -import { absolutifyLink } from "../helpers/utils"; import Icon from "./Icon"; interface Props { @@ -25,12 +25,12 @@ const GenerateQRCodeDialog: React.FC = (props: Props) => { const handleDownloadQRCodeClick = () => { const canvas = containerRef.current?.querySelector("canvas"); if (!canvas) { - toast.error("Failed to get qr code canvas"); + toast.error("Failed to get QR code canvas"); return; } const link = document.createElement("a"); - link.download = "filename.png"; + link.download = `${shortcut.title || shortcut.name}-qrcode.png`; link.href = canvas.toDataURL(); link.click(); handleCloseBtnClick(); @@ -47,7 +47,7 @@ const GenerateQRCodeDialog: React.FC = (props: Props) => {
- +
diff --git a/frontend/web/src/components/common/Dropdown.tsx b/frontend/web/src/components/common/Dropdown.tsx index 1caedb8..3ef0235 100644 --- a/frontend/web/src/components/common/Dropdown.tsx +++ b/frontend/web/src/components/common/Dropdown.tsx @@ -1,5 +1,5 @@ import { ReactNode, useEffect, useRef, useState } from "react"; -import Icon from "../Icon"; +import Icon from "@/components/Icon"; interface Props { trigger?: ReactNode; diff --git a/frontend/web/src/components/setting/AccessTokenSection.tsx b/frontend/web/src/components/setting/AccessTokenSection.tsx index ec822d3..16ae8a3 100644 --- a/frontend/web/src/components/setting/AccessTokenSection.tsx +++ b/frontend/web/src/components/setting/AccessTokenSection.tsx @@ -3,12 +3,12 @@ import copy from "copy-to-clipboard"; import { useEffect, useState } from "react"; import { toast } from "react-hot-toast"; import { useTranslation } from "react-i18next"; +import { showCommonDialog } from "@/components/Alert"; +import CreateAccessTokenDialog from "@/components/CreateAccessTokenDialog"; +import Icon from "@/components/Icon"; import { userServiceClient } from "@/grpcweb"; import { useUserStore } from "@/stores"; import { UserAccessToken } from "@/types/proto/api/v1/user_service"; -import { showCommonDialog } from "../Alert"; -import CreateAccessTokenDialog from "../CreateAccessTokenDialog"; -import Icon from "../Icon"; const listAccessTokens = async (userId: number) => { const { accessTokens } = await userServiceClient.listUserAccessTokens({ diff --git a/frontend/web/src/components/setting/AccountSection.tsx b/frontend/web/src/components/setting/AccountSection.tsx index a2c9921..6a8d5f4 100644 --- a/frontend/web/src/components/setting/AccountSection.tsx +++ b/frontend/web/src/components/setting/AccountSection.tsx @@ -1,10 +1,10 @@ import { Button } from "@mui/joy"; import { useState } from "react"; import { useTranslation } from "react-i18next"; +import ChangePasswordDialog from "@/components/ChangePasswordDialog"; +import EditUserinfoDialog from "@/components/EditUserinfoDialog"; import { useUserStore } from "@/stores"; import { Role } from "@/types/proto/api/v1/user_service"; -import ChangePasswordDialog from "../ChangePasswordDialog"; -import EditUserinfoDialog from "../EditUserinfoDialog"; const AccountSection: React.FC = () => { const { t } = useTranslation(); diff --git a/frontend/web/src/components/setting/MemberSection.tsx b/frontend/web/src/components/setting/MemberSection.tsx index a4b077f..97ae67a 100644 --- a/frontend/web/src/components/setting/MemberSection.tsx +++ b/frontend/web/src/components/setting/MemberSection.tsx @@ -2,12 +2,12 @@ import { Button, IconButton } from "@mui/joy"; import { useEffect, useState } from "react"; import toast from "react-hot-toast"; import { useTranslation } from "react-i18next"; +import { showCommonDialog } from "@/components/Alert"; +import CreateUserDialog from "@/components/CreateUserDialog"; +import Icon from "@/components/Icon"; import { useUserStore } from "@/stores"; import { User } from "@/types/proto/api/v1/user_service"; import { convertRoleFromPb } from "@/utils/user"; -import { showCommonDialog } from "../Alert"; -import CreateUserDialog from "../CreateUserDialog"; -import Icon from "../Icon"; const MemberSection = () => { const { t } = useTranslation(); diff --git a/frontend/web/src/components/setting/PreferenceSection.tsx b/frontend/web/src/components/setting/PreferenceSection.tsx index 4990a3f..0169d19 100644 --- a/frontend/web/src/components/setting/PreferenceSection.tsx +++ b/frontend/web/src/components/setting/PreferenceSection.tsx @@ -1,8 +1,8 @@ import { Option, Select } from "@mui/joy"; import { useTranslation } from "react-i18next"; +import BetaBadge from "@/components/BetaBadge"; import { useUserStore } from "@/stores"; import { UserSetting, UserSetting_ColorTheme, UserSetting_Locale } from "@/types/proto/api/v1/user_setting_service"; -import BetaBadge from "../BetaBadge"; const PreferenceSection: React.FC = () => { const { t } = useTranslation(); diff --git a/frontend/web/src/pages/CollectionDashboard.tsx b/frontend/web/src/pages/CollectionDashboard.tsx index 6bec356..253459d 100644 --- a/frontend/web/src/pages/CollectionDashboard.tsx +++ b/frontend/web/src/pages/CollectionDashboard.tsx @@ -3,10 +3,10 @@ import { useEffect, useState } from "react"; import { useTranslation } from "react-i18next"; import CollectionView from "@/components/CollectionView"; import CreateCollectionDrawer from "@/components/CreateCollectionDrawer"; +import FilterView from "@/components/FilterView"; +import Icon from "@/components/Icon"; +import useLoading from "@/hooks/useLoading"; import { useShortcutStore, useCollectionStore } from "@/stores"; -import FilterView from "../components/FilterView"; -import Icon from "../components/Icon"; -import useLoading from "../hooks/useLoading"; interface State { showCreateCollectionDrawer: boolean; diff --git a/frontend/web/src/pages/SignIn.tsx b/frontend/web/src/pages/SignIn.tsx index a1bde5a..b862086 100644 --- a/frontend/web/src/pages/SignIn.tsx +++ b/frontend/web/src/pages/SignIn.tsx @@ -5,9 +5,9 @@ import { useTranslation } from "react-i18next"; import { Link } from "react-router-dom"; import Icon from "@/components/Icon"; import { authServiceClient } from "@/grpcweb"; +import useLoading from "@/hooks/useLoading"; import useNavigateTo from "@/hooks/useNavigateTo"; import { useUserStore, useWorkspaceStore } from "@/stores"; -import useLoading from "../hooks/useLoading"; const SignIn: React.FC = () => { const { t } = useTranslation(); diff --git a/frontend/web/src/pages/SignUp.tsx b/frontend/web/src/pages/SignUp.tsx index 4a95254..9f673ac 100644 --- a/frontend/web/src/pages/SignUp.tsx +++ b/frontend/web/src/pages/SignUp.tsx @@ -5,9 +5,9 @@ import { useTranslation } from "react-i18next"; import { Link } from "react-router-dom"; import Icon from "@/components/Icon"; import { authServiceClient } from "@/grpcweb"; +import useLoading from "@/hooks/useLoading"; import useNavigateTo from "@/hooks/useNavigateTo"; import { useUserStore, useWorkspaceStore } from "@/stores"; -import useLoading from "../hooks/useLoading"; const SignUp: React.FC = () => { const { t } = useTranslation(); diff --git a/frontend/web/src/pages/UserSetting.tsx b/frontend/web/src/pages/UserSetting.tsx index 69fd529..5358b48 100644 --- a/frontend/web/src/pages/UserSetting.tsx +++ b/frontend/web/src/pages/UserSetting.tsx @@ -1,6 +1,6 @@ +import AccessTokenSection from "@/components/setting/AccessTokenSection"; +import AccountSection from "@/components/setting/AccountSection"; import PreferenceSection from "@/components/setting/PreferenceSection"; -import AccessTokenSection from "../components/setting/AccessTokenSection"; -import AccountSection from "../components/setting/AccountSection"; const Setting: React.FC = () => { return ( diff --git a/frontend/web/src/pages/WorkspaceSetting.tsx b/frontend/web/src/pages/WorkspaceSetting.tsx index a5ed3b2..b463c78 100644 --- a/frontend/web/src/pages/WorkspaceSetting.tsx +++ b/frontend/web/src/pages/WorkspaceSetting.tsx @@ -2,11 +2,11 @@ import { Alert, Button } from "@mui/joy"; import { useEffect } from "react"; import { Link } from "react-router-dom"; import Icon from "@/components/Icon"; +import MemberSection from "@/components/setting/MemberSection"; +import WorkspaceSection from "@/components/setting/WorkspaceSection"; import { useUserStore, useWorkspaceStore } from "@/stores"; import { stringifyPlanType } from "@/stores/subscription"; import { Role } from "@/types/proto/api/v1/user_service"; -import MemberSection from "../components/setting/MemberSection"; -import WorkspaceSection from "../components/setting/WorkspaceSection"; const WorkspaceSetting: React.FC = () => { const workspaceStore = useWorkspaceStore(); diff --git a/frontend/web/src/routers/index.tsx b/frontend/web/src/routers/index.tsx index 90ae77b..10198d2 100644 --- a/frontend/web/src/routers/index.tsx +++ b/frontend/web/src/routers/index.tsx @@ -1,17 +1,17 @@ import { createBrowserRouter } from "react-router-dom"; +import App from "@/App"; +import Root from "@/layouts/Root"; import CollectionDashboard from "@/pages/CollectionDashboard"; import CollectionSpace from "@/pages/CollectionSpace"; +import Home from "@/pages/Home"; import NotFound from "@/pages/NotFound"; +import ShortcutDetail from "@/pages/ShortcutDetail"; import ShortcutSpace from "@/pages/ShortcutSpace"; import SignIn from "@/pages/SignIn"; import SignUp from "@/pages/SignUp"; import SubscriptionSetting from "@/pages/SubscriptionSetting"; import UserSetting from "@/pages/UserSetting"; import WorkspaceSetting from "@/pages/WorkspaceSetting"; -import App from "../App"; -import Root from "../layouts/Root"; -import Home from "../pages/Home"; -import ShortcutDetail from "../pages/ShortcutDetail"; const router = createBrowserRouter([ {