diff --git a/web/.prettierrc b/web/.prettierrc deleted file mode 100644 index 6e0dd68..0000000 --- a/web/.prettierrc +++ /dev/null @@ -1,8 +0,0 @@ -{ - "printWidth": 140, - "useTabs": false, - "semi": true, - "singleQuote": false, - "plugins": ["@ianvs/prettier-plugin-sort-imports"], - "importOrder": ["", "", "^@/(.*)$", "^[./]", ".less$"] -} diff --git a/web/.prettierrc.js b/web/.prettierrc.js new file mode 100644 index 0000000..09a8189 --- /dev/null +++ b/web/.prettierrc.js @@ -0,0 +1,8 @@ +module.exports = { + printWidth: 140, + useTabs: false, + semi: true, + singleQuote: false, + plugins: [require.resolve("@trivago/prettier-plugin-sort-imports")], + importOrder: ["", "", "^@/((?!less).+)", "^[./]", "^(.+).less"], +}; diff --git a/web/package.json b/web/package.json index 07e55d7..401ad98 100644 --- a/web/package.json +++ b/web/package.json @@ -30,7 +30,7 @@ "zustand": "^4.3.8" }, "devDependencies": { - "@ianvs/prettier-plugin-sort-imports": "^4.1.0", + "@trivago/prettier-plugin-sort-imports": "^4.1.0", "@types/lodash-es": "^4.17.5", "@types/node": "^20.3.1", "@types/react": "^18.2.18", @@ -44,7 +44,7 @@ "eslint-plugin-prettier": "^4.0.0", "eslint-plugin-react": "^7.27.1", "postcss": "^8.4.21", - "prettier": "2.5.1", + "prettier": "2.6.2", "typescript": "^5.0.4", "vite": "^4.2.1" } diff --git a/web/pnpm-lock.yaml b/web/pnpm-lock.yaml index c95572a..dd689f2 100644 --- a/web/pnpm-lock.yaml +++ b/web/pnpm-lock.yaml @@ -67,9 +67,9 @@ dependencies: version: 4.3.8(react@18.2.0) devDependencies: - '@ianvs/prettier-plugin-sort-imports': + '@trivago/prettier-plugin-sort-imports': specifier: ^4.1.0 - version: 4.1.0(prettier@2.5.1) + version: 4.1.0(prettier@2.6.2) '@types/lodash-es': specifier: ^4.17.5 version: 4.17.5 @@ -102,7 +102,7 @@ devDependencies: version: 8.3.0(eslint@8.46.0) eslint-plugin-prettier: specifier: ^4.0.0 - version: 4.0.0(eslint-config-prettier@8.3.0)(eslint@8.46.0)(prettier@2.5.1) + version: 4.0.0(eslint-config-prettier@8.3.0)(eslint@8.46.0)(prettier@2.6.2) eslint-plugin-react: specifier: ^7.27.1 version: 7.27.1(eslint@8.46.0) @@ -110,8 +110,8 @@ devDependencies: specifier: ^8.4.21 version: 8.4.21 prettier: - specifier: 2.5.1 - version: 2.5.1 + specifier: 2.6.2 + version: 2.6.2 typescript: specifier: ^5.0.4 version: 5.0.4 @@ -131,46 +131,19 @@ packages: engines: {node: '>=10'} dev: false - /@ampproject/remapping@2.2.1: - resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} - engines: {node: '>=6.0.0'} - dependencies: - '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.18 - dev: true - /@babel/code-frame@7.22.5: resolution: {integrity: sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==} engines: {node: '>=6.9.0'} dependencies: '@babel/highlight': 7.22.5 - /@babel/compat-data@7.22.9: - resolution: {integrity: sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==} - engines: {node: '>=6.9.0'} - dev: true - - /@babel/core@7.22.9: - resolution: {integrity: sha512-G2EgeufBcYw27U4hhoIwFcgc1XU7TlXJ3mv04oOv1WCuo900U/anZSPzEqNjwdjgffkk2Gs0AN0dW1CKVLcG7w==} + /@babel/generator@7.17.7: + resolution: {integrity: sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w==} engines: {node: '>=6.9.0'} dependencies: - '@ampproject/remapping': 2.2.1 - '@babel/code-frame': 7.22.5 - '@babel/generator': 7.22.9 - '@babel/helper-compilation-targets': 7.22.9(@babel/core@7.22.9) - '@babel/helper-module-transforms': 7.22.9(@babel/core@7.22.9) - '@babel/helpers': 7.22.6 - '@babel/parser': 7.22.7 - '@babel/template': 7.22.5 - '@babel/traverse': 7.22.8 '@babel/types': 7.22.5 - convert-source-map: 1.9.0 - debug: 4.3.4 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color + jsesc: 2.5.2 + source-map: 0.5.7 dev: true /@babel/generator@7.22.9: @@ -183,20 +156,6 @@ packages: jsesc: 2.5.2 dev: true - /@babel/helper-compilation-targets@7.22.9(@babel/core@7.22.9): - resolution: {integrity: sha512-7qYrNM6HjpnPHJbopxmb8hSPoZ0gsX8IvUS32JGVoy+pU9e5N0nLr1VjJoR6kA4d9dmGLxNYOjeB8sUDal2WMw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/compat-data': 7.22.9 - '@babel/core': 7.22.9 - '@babel/helper-validator-option': 7.22.5 - browserslist: 4.21.10 - lru-cache: 5.1.1 - semver: 6.3.1 - dev: true - /@babel/helper-environment-visitor@7.22.5: resolution: {integrity: sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==} engines: {node: '>=6.9.0'} @@ -222,27 +181,7 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.22.5 - - /@babel/helper-module-transforms@7.22.9(@babel/core@7.22.9): - resolution: {integrity: sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-environment-visitor': 7.22.5 - '@babel/helper-module-imports': 7.22.5 - '@babel/helper-simple-access': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - '@babel/helper-validator-identifier': 7.22.5 - dev: true - - /@babel/helper-simple-access@7.22.5: - resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.22.5 - dev: true + dev: false /@babel/helper-split-export-declaration@7.22.6: resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} @@ -259,22 +198,6 @@ packages: resolution: {integrity: sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==} engines: {node: '>=6.9.0'} - /@babel/helper-validator-option@7.22.5: - resolution: {integrity: sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==} - engines: {node: '>=6.9.0'} - dev: true - - /@babel/helpers@7.22.6: - resolution: {integrity: sha512-YjDs6y/fVOYFV8hAf1rxd1QvR9wJe1pDBZ2AREKq/SDayfPzgk0PBnVuTCE5X1acEpMMNOVUqoe+OwiZGJ+OaA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/template': 7.22.5 - '@babel/traverse': 7.22.8 - '@babel/types': 7.22.5 - transitivePeerDependencies: - - supports-color - dev: true - /@babel/highlight@7.22.5: resolution: {integrity: sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==} engines: {node: '>=6.9.0'} @@ -307,8 +230,8 @@ packages: '@babel/types': 7.22.5 dev: true - /@babel/traverse@7.22.8: - resolution: {integrity: sha512-y6LPR+wpM2I3qJrsheCTwhIinzkETbplIgPBbwvqPKc+uljeA5gP+3nP8irdYt1mjQaDnlIcG+dw8OjAco4GXw==} + /@babel/traverse@7.17.3: + resolution: {integrity: sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw==} engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.22.5 @@ -325,6 +248,14 @@ packages: - supports-color dev: true + /@babel/types@7.17.0: + resolution: {integrity: sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.22.5 + to-fast-properties: 2.0.0 + dev: true + /@babel/types@7.22.5: resolution: {integrity: sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==} engines: {node: '>=6.9.0'} @@ -704,26 +635,6 @@ packages: resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} dev: true - /@ianvs/prettier-plugin-sort-imports@4.1.0(prettier@2.5.1): - resolution: {integrity: sha512-IAXeTLU24k6mRPa6mFbW1qZJ/j0m3OeH44wyijWyr+YqqdNtBnfHxAntOAATS9iDfrT01NesKGsdzqnXdDQa/A==} - peerDependencies: - '@vue/compiler-sfc': '>=3.0.0' - prettier: 2 || 3 - peerDependenciesMeta: - '@vue/compiler-sfc': - optional: true - dependencies: - '@babel/core': 7.22.9 - '@babel/generator': 7.22.9 - '@babel/parser': 7.22.7 - '@babel/traverse': 7.22.8 - '@babel/types': 7.22.5 - prettier: 2.5.1 - semver: 7.5.4 - transitivePeerDependencies: - - supports-color - dev: true - /@jridgewell/gen-mapping@0.3.3: resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} engines: {node: '>=6.0.0'} @@ -1066,6 +977,26 @@ packages: '@swc/core-win32-x64-msvc': 1.3.73 dev: true + /@trivago/prettier-plugin-sort-imports@4.1.0(prettier@2.6.2): + resolution: {integrity: sha512-aTr6QPFaPAAzPRFn9yWB/9yKi3ZAFqfGpxIGLPWuQfYJFGUed+W3KKwxntsoCiNvNE2iuKOg6haMo5KG8WXltg==} + peerDependencies: + '@vue/compiler-sfc': 3.x + prettier: 2.x + peerDependenciesMeta: + '@vue/compiler-sfc': + optional: true + dependencies: + '@babel/generator': 7.17.7 + '@babel/parser': 7.22.7 + '@babel/traverse': 7.17.3 + '@babel/types': 7.17.0 + javascript-natural-sort: 0.7.1 + lodash: 4.17.21 + prettier: 2.6.2 + transitivePeerDependencies: + - supports-color + dev: true + /@types/hoist-non-react-statics@3.3.1: resolution: {integrity: sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==} dependencies: @@ -1556,6 +1487,7 @@ packages: /convert-source-map@1.9.0: resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} + dev: false /copy-to-clipboard@3.3.2: resolution: {integrity: sha512-Vme1Z6RUDzrb6xAI7EZlVZ5uvOk2F//GaxKUxajDqm9LhOVM1inxNAD2vy+UZDYsd0uyA9s7b3/FVZPSxqrCfg==} @@ -1785,7 +1717,7 @@ packages: eslint: 8.46.0 dev: true - /eslint-plugin-prettier@4.0.0(eslint-config-prettier@8.3.0)(eslint@8.46.0)(prettier@2.5.1): + /eslint-plugin-prettier@4.0.0(eslint-config-prettier@8.3.0)(eslint@8.46.0)(prettier@2.6.2): resolution: {integrity: sha512-98MqmCJ7vJodoQK359bqQWaxOE0CS8paAz/GgjaZLyex4TTk3g9HugoO89EqWCrFiOqn9EVvcoo7gZzONCWVwQ==} engines: {node: '>=6.0.0'} peerDependencies: @@ -1798,7 +1730,7 @@ packages: dependencies: eslint: 8.46.0 eslint-config-prettier: 8.3.0(eslint@8.46.0) - prettier: 2.5.1 + prettier: 2.6.2 prettier-linter-helpers: 1.0.0 dev: true @@ -2041,11 +1973,6 @@ packages: resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} dev: true - /gensync@1.0.0-beta.2: - resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} - engines: {node: '>=6.9.0'} - dev: true - /get-intrinsic@1.2.1: resolution: {integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==} dependencies: @@ -2375,6 +2302,10 @@ packages: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} dev: true + /javascript-natural-sort@0.7.1: + resolution: {integrity: sha512-nO6jcEfZWQXDhOiBtG2KvKyEptz7RVbpGP4vTD2hLBdmNQSsCiicO2Ioinv6UI4y9ukqnBpy+XZ9H6uLNgJTlw==} + dev: true + /jiti@1.19.1: resolution: {integrity: sha512-oVhqoRDaBXf7sjkll95LHVS6Myyyb1zaunVwk4Z0+WPSW4gjS0pl01zYKHScTuyEhQsFxV5L4DR5r+YqSyqyyg==} hasBin: true @@ -2408,12 +2339,6 @@ packages: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} dev: true - /json5@2.2.3: - resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} - engines: {node: '>=6'} - hasBin: true - dev: true - /jsx-ast-utils@3.3.5: resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} engines: {node: '>=4.0'} @@ -2456,18 +2381,16 @@ packages: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} dev: true + /lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + dev: true + /loose-envify@1.4.0: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true dependencies: js-tokens: 4.0.0 - /lru-cache@5.1.1: - resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - dependencies: - yallist: 3.1.1 - dev: true - /lru-cache@6.0.0: resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} engines: {node: '>=10'} @@ -2787,8 +2710,8 @@ packages: fast-diff: 1.3.0 dev: true - /prettier@2.5.1: - resolution: {integrity: sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==} + /prettier@2.6.2: + resolution: {integrity: sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew==} engines: {node: '>=10.13.0'} hasBin: true dev: true @@ -3089,7 +3012,6 @@ packages: /source-map@0.5.7: resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} engines: {node: '>=0.10.0'} - dev: false /string.prototype.matchall@4.0.8: resolution: {integrity: sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==} @@ -3417,10 +3339,6 @@ packages: /wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - /yallist@3.1.1: - resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - dev: true - /yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} dev: true diff --git a/web/src/components/Header.tsx b/web/src/components/Header.tsx index 1ca0376..f94a0c8 100644 --- a/web/src/components/Header.tsx +++ b/web/src/components/Header.tsx @@ -4,8 +4,8 @@ import { Link } from "react-router-dom"; import * as api from "../helpers/api"; import useUserStore from "../stores/v1/user"; import AboutDialog from "./AboutDialog"; -import Dropdown from "./common/Dropdown"; import Icon from "./Icon"; +import Dropdown from "./common/Dropdown"; const Header: React.FC = () => { const currentUser = useUserStore().getCurrentUser(); diff --git a/web/src/components/ShortcutActionsDropdown.tsx b/web/src/components/ShortcutActionsDropdown.tsx index a150742..00be1e7 100644 --- a/web/src/components/ShortcutActionsDropdown.tsx +++ b/web/src/components/ShortcutActionsDropdown.tsx @@ -3,10 +3,10 @@ import { shortcutService } from "../services"; import useUserStore from "../stores/v1/user"; import { showCommonDialog } from "./Alert"; import AnalyticsDialog from "./AnalyticsDialog"; -import Dropdown from "./common/Dropdown"; import CreateShortcutDialog from "./CreateShortcutDialog"; import GenerateQRCodeDialog from "./GenerateQRCodeDialog"; import Icon from "./Icon"; +import Dropdown from "./common/Dropdown"; interface Props { shortcut: Shortcut; diff --git a/web/src/components/ViewSetting.tsx b/web/src/components/ViewSetting.tsx index 9d2b882..d2f4745 100644 --- a/web/src/components/ViewSetting.tsx +++ b/web/src/components/ViewSetting.tsx @@ -1,8 +1,8 @@ import { Button, Divider, Option, Select } from "@mui/joy"; import { toast } from "react-hot-toast"; import useViewStore from "../stores/v1/view"; -import Dropdown from "./common/Dropdown"; import Icon from "./Icon"; +import Dropdown from "./common/Dropdown"; const ViewSetting = () => { const viewStore = useViewStore(); diff --git a/web/src/main.tsx b/web/src/main.tsx index 28eb89c..a91dd4e 100644 --- a/web/src/main.tsx +++ b/web/src/main.tsx @@ -3,10 +3,10 @@ import { createRoot } from "react-dom/client"; import { Toaster } from "react-hot-toast"; import { Provider } from "react-redux"; import { RouterProvider } from "react-router-dom"; +import "./css/index.css"; +import "./i18n"; import router from "./routers"; import store from "./stores"; -import "./i18n"; -import "./css/index.css"; const container = document.getElementById("root"); const root = createRoot(container as HTMLElement); diff --git a/web/src/pages/ShortcutDetail.tsx b/web/src/pages/ShortcutDetail.tsx index 0523371..1d56e6d 100644 --- a/web/src/pages/ShortcutDetail.tsx +++ b/web/src/pages/ShortcutDetail.tsx @@ -7,11 +7,11 @@ import { useTranslation } from "react-i18next"; import { useLoaderData, useNavigate } from "react-router-dom"; import { showCommonDialog } from "../components/Alert"; import AnalyticsView from "../components/AnalyticsView"; -import Dropdown from "../components/common/Dropdown"; import CreateShortcutDialog from "../components/CreateShortcutDialog"; import GenerateQRCodeDialog from "../components/GenerateQRCodeDialog"; import Icon from "../components/Icon"; import VisibilityIcon from "../components/VisibilityIcon"; +import Dropdown from "../components/common/Dropdown"; import { absolutifyLink } from "../helpers/utils"; import { shortcutService } from "../services"; import useFaviconStore from "../stores/v1/favicon";