From ed5acbcb6f0de85f6ae4c577835fca1eb283a10e Mon Sep 17 00:00:00 2001 From: dopamine Date: Tue, 29 Oct 2024 19:27:56 +0800 Subject: [PATCH] merge(squash) dev into evalution --- .github/workflows/lint-commit-message.yml | 6 +- .github/workflows/pr-docs-build.yml | 10 +- .github/workflows/publish-build-product.yml | 6 +- .../workflows/publish-docs-deploy-manual.yml | 6 +- .github/workflows/publish-docs-deploy.yml | 6 +- .github/workflows/publish-npm-nightly.yml | 10 +- .github/workflows/publish-npm.yml | 10 +- .github/workflows/publish-pr-commit-pkg.yml | 2 +- .github/workflows/publish-size-report.yml | 6 +- .github/workflows/staging-docs.yml | 6 +- .github/workflows/test-coverage.yml | 6 +- .github/workflows/test-ssr.yml | 6 +- .github/workflows/test-unit.yml | 18 +- CHANGELOG.en-US.md | 44 +++ README.md | 5 + docs/.vitepress/config/sponsors.ts | 8 + docs/.vitepress/config/vite.ts | 25 +- docs/.vitepress/lang.js | 19 +- .../components/home/svg/guide-svg.vue | 5 +- .../vitepress/components/navbar/vp-search.vue | 3 +- .../vitepress/components/vp-content.vue | 19 +- .../vitepress/components/vp-sponsors.vue | 4 +- .../.vitepress/vitepress/styles/css-vars.scss | 18 +- docs/en-US/component/autocomplete.md | 32 +- docs/en-US/component/cascader.md | 4 +- docs/en-US/component/checkbox.md | 12 +- docs/en-US/component/color-picker.md | 2 +- docs/en-US/component/config-provider.md | 6 +- docs/en-US/component/date-picker.md | 11 +- docs/en-US/component/datetime-picker.md | 78 ++--- docs/en-US/component/dialog.md | 4 +- docs/en-US/component/drawer.md | 4 +- docs/en-US/component/input-number.md | 5 +- docs/en-US/component/input.md | 2 +- docs/en-US/component/mention.md | 9 +- docs/en-US/component/menu.md | 6 +- docs/en-US/component/pagination.md | 2 +- docs/en-US/component/radio.md | 2 +- docs/en-US/component/rate.md | 2 +- docs/en-US/component/segmented.md | 8 +- docs/en-US/component/select-v2.md | 11 +- docs/en-US/component/select.md | 11 +- docs/en-US/component/slider.md | 2 +- docs/en-US/component/switch.md | 8 +- docs/en-US/component/tabs.md | 2 +- docs/en-US/component/time-picker.md | 14 +- docs/en-US/component/transfer.md | 32 +- docs/en-US/component/tree.md | 68 ++-- docs/en-US/guide/installation.md | 18 +- docs/en-US/guide/nav.md | 2 +- docs/en-US/guide/quickstart.md | 13 - internal/build/package.json | 2 +- package.json | 8 +- .../components/badge/__tests__/badge.test.tsx | 25 +- packages/components/badge/src/badge.vue | 7 +- .../components/cascader-panel/src/node.ts | 5 +- .../date-picker/__tests__/date-picker.test.ts | 69 +++- .../src/composables/use-basic-date-table.ts | 4 +- .../src/date-picker-com/panel-date-pick.vue | 4 +- .../date-picker/src/date-picker.tsx | 7 +- .../components/date-picker/src/instance.ts | 3 +- .../date-picker/src/props/shared.ts | 4 + .../dropdown/src/dropdown-item-impl.vue | 1 - packages/components/form/src/form-item.vue | 3 +- packages/components/image/src/image.vue | 3 +- packages/components/input/src/input.vue | 21 +- packages/components/mention/src/mention.vue | 2 + packages/components/menu/src/menu-item.ts | 9 +- packages/components/menu/src/menu.ts | 3 +- .../components/message-box/src/messageBox.ts | 2 +- .../pagination/src/components/sizes.vue | 3 +- packages/components/popper/src/popper.ts | 2 + packages/components/popper/src/trigger.vue | 38 +-- .../components/segmented/src/segmented.vue | 1 + .../select-v2/__tests__/select.test.ts | 95 ++++++ packages/components/select-v2/src/select.vue | 8 + .../components/select-v2/src/useSelect.ts | 23 +- .../select/__tests__/select.test.ts | 199 ++++++++++++ packages/components/select/src/select.vue | 8 + packages/components/select/src/useSelect.ts | 36 ++- packages/components/slider/src/button.vue | 2 +- .../slider/src/composables/use-lifecycle.ts | 3 +- .../slider/src/composables/use-watch.ts | 8 +- .../table-v2/src/components/header.tsx | 18 +- .../table-v2/src/composables/use-data.ts | 3 +- .../components/table-v2/src/table-grid.tsx | 9 +- packages/components/table/src/store/tree.ts | 5 +- .../components/table/src/store/watcher.ts | 6 +- .../table/src/table-body/render-helper.ts | 8 +- .../table/src/table-body/styles-helper.ts | 3 +- .../table/src/table-body/td-wrapper.vue | 20 ++ .../table/src/table-column/index.ts | 6 +- .../table/src/table-column/render-helper.ts | 6 +- .../table/src/table-header/event-helper.ts | 5 +- packages/components/table/src/table.vue | 12 +- packages/components/table/src/util.ts | 6 +- .../__tests__/time-picker.test.tsx | 85 +++-- .../src/common/picker-range-trigger.vue | 117 +++++++ .../time-picker/src/common/picker.vue | 300 +++++++----------- .../time-picker/src/common/props.ts | 22 +- .../time-picker-com/basic-time-spinner.vue | 9 +- .../time-picker/src/time-picker.tsx | 8 +- packages/components/tour/src/helper.ts | 2 +- .../transfer/__tests__/transfer.test.tsx | 118 +++++++ packages/components/transfer/src/transfer.vue | 11 +- packages/components/tree-select/src/utils.ts | 6 +- .../components/tree/__tests__/tree.test.ts | 25 ++ packages/components/tree/src/model/node.ts | 10 +- .../components/tree/src/model/tree-store.ts | 2 + packages/components/tree/src/tree-node.vue | 12 +- packages/components/watermark/src/useClips.ts | 4 +- .../components/watermark/src/watermark.vue | 3 +- packages/directives/click-outside/index.ts | 4 +- packages/hooks/__tests__/use-id.test.tsx | 3 + packages/hooks/use-id/index.ts | 8 +- packages/hooks/use-lockscreen/index.ts | 3 + packages/hooks/use-popper-container/index.ts | 5 +- packages/locale/lang/de.ts | 20 +- packages/theme-chalk/src/badge.scss | 4 + packages/theme-chalk/src/color/index.scss | 11 +- packages/theme-chalk/src/common/var.scss | 3 +- packages/theme-chalk/src/dark/var.scss | 3 +- packages/theme-chalk/src/mixins/_var.scss | 7 +- packages/theme-chalk/src/mixins/function.scss | 12 +- packages/theme-chalk/src/mixins/mixins.scss | 6 +- packages/theme-chalk/src/option-group.scss | 6 +- packages/theme-chalk/src/popper.scss | 2 +- packages/theme-chalk/src/table-v2.scss | 6 +- packages/utils/arrays.ts | 4 +- packages/utils/dom/aria.ts | 7 +- packages/utils/vue/vnode.ts | 2 +- play/vite.config.ts | 23 +- 132 files changed, 1531 insertions(+), 675 deletions(-) create mode 100644 packages/components/table/src/table-body/td-wrapper.vue create mode 100644 packages/components/time-picker/src/common/picker-range-trigger.vue diff --git a/.github/workflows/lint-commit-message.yml b/.github/workflows/lint-commit-message.yml index fdb3e5f440..95e66baab5 100644 --- a/.github/workflows/lint-commit-message.yml +++ b/.github/workflows/lint-commit-message.yml @@ -20,16 +20,16 @@ jobs: uses: pnpm/action-setup@v4 - name: Setup node - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: - node-version: 18 + node-version: 20 - name: Get pnpm store directory id: pnpm-cache run: | echo "pnpm_cache_dir=$(pnpm store path)" >> $GITHUB_OUTPUT - - uses: actions/cache@v3 + - uses: actions/cache@v4 name: Setup pnpm cache with: path: ${{ steps.pnpm-cache.outputs.pnpm_cache_dir }} diff --git a/.github/workflows/pr-docs-build.yml b/.github/workflows/pr-docs-build.yml index e6409fc85a..a306b03dce 100644 --- a/.github/workflows/pr-docs-build.yml +++ b/.github/workflows/pr-docs-build.yml @@ -13,13 +13,11 @@ jobs: strategy: matrix: - node-version: [18] + node-version: [20] os: [ubuntu-latest, windows-latest] include: - - node-version: 18 + - node-version: 20 node-name: LTS - # - node-version: 18 - # node-name: Current fail-fast: false @@ -34,7 +32,7 @@ jobs: uses: pnpm/action-setup@v4 - name: Setup node - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} @@ -44,7 +42,7 @@ jobs: echo "pnpm_cache_dir=$(pnpm store path)" >> $GITHUB_OUTPUT echo "pnpm_cache_dir=$(pnpm store path)" >> $env:GITHUB_OUTPUT - - uses: actions/cache@v3 + - uses: actions/cache@v4 name: Setup pnpm cache with: path: ${{ steps.pnpm-cache.outputs.pnpm_cache_dir }} diff --git a/.github/workflows/publish-build-product.yml b/.github/workflows/publish-build-product.yml index e0b6571b7e..cc8c8dd850 100644 --- a/.github/workflows/publish-build-product.yml +++ b/.github/workflows/publish-build-product.yml @@ -23,16 +23,16 @@ jobs: uses: pnpm/action-setup@v4 - name: Setup node - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: - node-version: 18 + node-version: 20 - name: Get pnpm store directory id: pnpm-cache run: | echo "pnpm_cache_dir=$(pnpm store path)" >> $GITHUB_OUTPUT - - uses: actions/cache@v3 + - uses: actions/cache@v4 name: Setup pnpm cache with: path: ${{ steps.pnpm-cache.outputs.pnpm_cache_dir }} diff --git a/.github/workflows/publish-docs-deploy-manual.yml b/.github/workflows/publish-docs-deploy-manual.yml index c0f2c35ce5..d4ff432c71 100644 --- a/.github/workflows/publish-docs-deploy-manual.yml +++ b/.github/workflows/publish-docs-deploy-manual.yml @@ -14,16 +14,16 @@ jobs: uses: pnpm/action-setup@v4 - name: Setup node - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: - node-version: 18 + node-version: 20 - name: Get pnpm store directory id: pnpm-cache run: | echo "pnpm_cache_dir=$(pnpm store path)" >> $GITHUB_OUTPUT - - uses: actions/cache@v3 + - uses: actions/cache@v4 name: Setup pnpm cache with: path: ${{ steps.pnpm-cache.outputs.pnpm_cache_dir }} diff --git a/.github/workflows/publish-docs-deploy.yml b/.github/workflows/publish-docs-deploy.yml index da56032eeb..a8d0fa81db 100644 --- a/.github/workflows/publish-docs-deploy.yml +++ b/.github/workflows/publish-docs-deploy.yml @@ -21,16 +21,16 @@ jobs: uses: pnpm/action-setup@v4 - name: Setup node - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: - node-version: 18 + node-version: 20 - name: Get pnpm store directory id: pnpm-cache run: | echo "pnpm_cache_dir=$(pnpm store path)" >> $GITHUB_OUTPUT - - uses: actions/cache@v3 + - uses: actions/cache@v4 name: Setup pnpm cache with: path: ${{ steps.pnpm-cache.outputs.pnpm_cache_dir }} diff --git a/.github/workflows/publish-npm-nightly.yml b/.github/workflows/publish-npm-nightly.yml index adfd172c96..3061e93666 100644 --- a/.github/workflows/publish-npm-nightly.yml +++ b/.github/workflows/publish-npm-nightly.yml @@ -20,16 +20,16 @@ jobs: uses: pnpm/action-setup@v4 - name: Setup node - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: - node-version: 18 + node-version: 20 - name: Get pnpm store directory id: pnpm-cache run: | echo "pnpm_cache_dir=$(pnpm store path)" >> $GITHUB_OUTPUT - - uses: actions/cache@v3 + - uses: actions/cache@v4 name: Setup pnpm cache with: path: ${{ steps.pnpm-cache.outputs.pnpm_cache_dir }} @@ -56,9 +56,9 @@ jobs: steps: - uses: actions/checkout@v4 - - uses: actions/setup-node@v3 + - uses: actions/setup-node@v4 with: - node-version: '18' + node-version: 20 registry-url: https://registry.npmjs.com/ - name: Setup pnpm diff --git a/.github/workflows/publish-npm.yml b/.github/workflows/publish-npm.yml index 2ff6e83354..f38122b193 100644 --- a/.github/workflows/publish-npm.yml +++ b/.github/workflows/publish-npm.yml @@ -19,9 +19,9 @@ jobs: uses: pnpm/action-setup@v4 - name: Setup node - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: - node-version: 18 + node-version: 20 registry-url: https://registry.npmjs.com/ - name: Get pnpm store directory @@ -29,7 +29,7 @@ jobs: run: | echo "pnpm_cache_dir=$(pnpm store path)" >> $GITHUB_OUTPUT - - uses: actions/cache@v3 + - uses: actions/cache@v4 name: Setup pnpm cache with: path: ${{ steps.pnpm-cache.outputs.pnpm_cache_dir }} @@ -55,9 +55,9 @@ jobs: steps: - uses: actions/checkout@v4 - - uses: actions/setup-node@v3 + - uses: actions/setup-node@v4 with: - node-version: 18 + node-version: 20 registry-url: https://registry.npmjs.com/ - name: Setup pnpm diff --git a/.github/workflows/publish-pr-commit-pkg.yml b/.github/workflows/publish-pr-commit-pkg.yml index 0cbb680b11..a150316f17 100644 --- a/.github/workflows/publish-pr-commit-pkg.yml +++ b/.github/workflows/publish-pr-commit-pkg.yml @@ -21,7 +21,7 @@ jobs: - run: corepack enable - uses: actions/setup-node@v4 with: - node-version: 18 + node-version: 20 cache: 'pnpm' - name: Setup pnpm diff --git a/.github/workflows/publish-size-report.yml b/.github/workflows/publish-size-report.yml index 4e177017ff..4f15ccc015 100644 --- a/.github/workflows/publish-size-report.yml +++ b/.github/workflows/publish-size-report.yml @@ -20,16 +20,16 @@ jobs: uses: pnpm/action-setup@v4 - name: Setup node - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: - node-version: 18 + node-version: 20 - name: Get pnpm store directory id: pnpm-cache run: | echo "pnpm_cache_dir=$(pnpm store path)" >> $GITHUB_OUTPUT - - uses: actions/cache@v3 + - uses: actions/cache@v4 name: Setup pnpm cache with: path: ${{ steps.pnpm-cache.outputs.pnpm_cache_dir }} diff --git a/.github/workflows/staging-docs.yml b/.github/workflows/staging-docs.yml index 55a136e393..6f8e51450b 100644 --- a/.github/workflows/staging-docs.yml +++ b/.github/workflows/staging-docs.yml @@ -23,16 +23,16 @@ jobs: uses: pnpm/action-setup@v4 - name: Setup node - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: - node-version: 18 + node-version: 20 - name: Get pnpm store directory id: pnpm-cache run: | echo "pnpm_cache_dir=$(pnpm store path)" >> $GITHUB_OUTPUT - - uses: actions/cache@v3 + - uses: actions/cache@v4 name: Setup pnpm cache with: path: ${{ steps.pnpm-cache.outputs.pnpm_cache_dir }} diff --git a/.github/workflows/test-coverage.yml b/.github/workflows/test-coverage.yml index 4a59a078ac..d99ed94ead 100644 --- a/.github/workflows/test-coverage.yml +++ b/.github/workflows/test-coverage.yml @@ -25,16 +25,16 @@ jobs: uses: pnpm/action-setup@v4 - name: Setup node - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: - node-version: 18 + node-version: 20 - name: Get pnpm store directory id: pnpm-cache run: | echo "pnpm_cache_dir=$(pnpm store path)" >> $GITHUB_OUTPUT - - uses: actions/cache@v3 + - uses: actions/cache@v4 name: Setup pnpm cache with: path: ${{ steps.pnpm-cache.outputs.pnpm_cache_dir }} diff --git a/.github/workflows/test-ssr.yml b/.github/workflows/test-ssr.yml index 0c708c8d07..2103c7c7bd 100644 --- a/.github/workflows/test-ssr.yml +++ b/.github/workflows/test-ssr.yml @@ -23,16 +23,16 @@ jobs: uses: pnpm/action-setup@v4 - name: Setup node - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: - node-version: 18 + node-version: 20 - name: Get pnpm store directory id: pnpm-cache run: | echo "pnpm_cache_dir=$(pnpm store path)" >> $GITHUB_OUTPUT - - uses: actions/cache@v3 + - uses: actions/cache@v4 name: Setup pnpm cache with: path: ${{ steps.pnpm-cache.outputs.pnpm_cache_dir }} diff --git a/.github/workflows/test-unit.yml b/.github/workflows/test-unit.yml index 87c87c6904..eedd0d1242 100644 --- a/.github/workflows/test-unit.yml +++ b/.github/workflows/test-unit.yml @@ -25,16 +25,16 @@ jobs: uses: pnpm/action-setup@v4 - name: Setup node - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: - node-version: 18 + node-version: 20 - name: Get pnpm store directory id: pnpm-cache run: | echo "pnpm_cache_dir=$(pnpm store path)" >> $GITHUB_OUTPUT - - uses: actions/cache@v3 + - uses: actions/cache@v4 name: Setup pnpm cache with: path: ${{ steps.pnpm-cache.outputs.pnpm_cache_dir }} @@ -57,12 +57,12 @@ jobs: strategy: matrix: - node-version: [18, 20] + node-version: [20, 22] include: - - node-version: 18 - node-name: LTS - node-version: 20 - node-name: LTS-20 + node-name: LTS + - node-version: 22 + node-name: Current steps: - uses: actions/checkout@v4 @@ -71,7 +71,7 @@ jobs: uses: pnpm/action-setup@v4 - name: Setup node - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} @@ -80,7 +80,7 @@ jobs: run: | echo "pnpm_cache_dir=$(pnpm store path)" >> $GITHUB_OUTPUT - - uses: actions/cache@v3 + - uses: actions/cache@v4 name: Setup pnpm cache with: path: ${{ steps.pnpm-cache.outputs.pnpm_cache_dir }} diff --git a/CHANGELOG.en-US.md b/CHANGELOG.en-US.md index e948225f0c..4f368e26d5 100644 --- a/CHANGELOG.en-US.md +++ b/CHANGELOG.en-US.md @@ -1,5 +1,49 @@ ## Changelog +### 2.8.6 + +_2024-10-18_ + +#### Features + +- Components [input] show pwd visible icon when the input is readonly (#18458 by @LoTwT) + +#### Bug fixes + +- Components [dropdown-item] remove redundant attributes (#18340 by @betavs) +- Components [select-v2] data echo abnormality (#18334 by @betavs) +- Components [segmented] no option to not render (#18509 by @btea) +- Progress bar get stuck when navigating between routes (#18586 by @makedopamine) +- Revert(components): [table-v2] #18179 & fix header checkbox z-index (#18554 by @warmthsea) + +### 2.8.5 + +_2024-10-11_ + +#### Features + +- I18n update germany translations (#18447 by @MaikoTan) +- Components [mention] explicit export dropdownVisible (#18460 by @SorrowX) +- Components [select & select-v2] explicit export `selectedLabel` (#18350 by @warmthsea) + +#### Bug fixes + +- Play dayjs cahce miss (#18381 by @makedopamine) +- Theme-chalk upgrade SASS version and fix deprecated color function (#18376 by @lvzhenbo) +- Components [transfer] render the option's label correctly when there's only an empty comment in the default slot (#18416 by @LoTwT) +- Components [table] cancel layout update when component unmount (#18440 by @btea) +- Hooks [lockscreen] compatible with document non-existence (#18445 by @btea) +- Components [mention] native event triggered twice (#18453 by @SorrowX) +- Components [select] use `blur` in the tooltip slot has no effect (#18335 by @warmthsea) +- Hooks rendering multiple popper container DOM in SSR/SSG (#18482 by @tolking) +- Components [select] the blur not triggered when click the outside (#18478 by @tolking) +- Components [table] the last column shuld not allow drag (#18444 by @btea) + +#### Refactors + +- Components [badge] show-zero implement (#18360 by @warmthsea) +- Docs remove Vite (#18383 by @makedopamine) + ### 2.8.4 _2024-09-27_ diff --git a/README.md b/README.md index 2b1264106a..c0008bf1b9 100644 --- a/README.md +++ b/README.md @@ -105,6 +105,11 @@ You can also try Element Plus out with the components built-in playground. + + + + + diff --git a/docs/.vitepress/config/sponsors.ts b/docs/.vitepress/config/sponsors.ts index e9bed6f677..ef3b1c5a29 100644 --- a/docs/.vitepress/config/sponsors.ts +++ b/docs/.vitepress/config/sponsors.ts @@ -29,6 +29,14 @@ export const rightLogoSmallSponsors = [ slogan: 'Fast and elegant low-code dev platform', slogan_cn: '快速且优雅的低代码平台', }, + { + name: 'Fantastic-admin', + img: '/images/sponsors/fantastic-admin.png', + imgL: '/images/sponsors/fantastic-admin-l.png', + url: 'https://fantastic-admin.github.io/', + slogan: 'Out-of-the-box Vue3 management system framework', + slogan_cn: '一款开箱即用的 Vue3 中后台管理系统框架', + }, { name: 'bit', img: '/images/bit.svg', diff --git a/docs/.vitepress/config/vite.ts b/docs/.vitepress/config/vite.ts index 924682ba18..7906075805 100644 --- a/docs/.vitepress/config/vite.ts +++ b/docs/.vitepress/config/vite.ts @@ -43,20 +43,27 @@ const alias: AliasOptions = [ ...(process.env.DOC_ENV === 'production' ? [] : [ - { - find: /^element-plus(\/(es|lib))?$/, - replacement: path.resolve(projRoot, 'packages/element-plus/index.ts'), - }, - { - find: /^element-plus\/(es|lib)\/(.*)$/, - replacement: `${path.resolve(projRoot, 'packages')}/$2`, - }, - ]), + { + find: /^element-plus(\/(es|lib))?$/, + replacement: path.resolve(projRoot, 'packages/element-plus/index.ts'), + }, + { + find: /^element-plus\/(es|lib)\/(.*)$/, + replacement: `${path.resolve(projRoot, 'packages')}/$2`, + }, + ]), ] export const getViteConfig = ({ mode }: { mode: string }): ViteConfig => { const env = loadEnv(mode, process.cwd(), '') return { + css: { + preprocessorOptions: { + scss: { + silenceDeprecations: ['legacy-js-api'], + }, + }, + }, server: { host: true, fs: { diff --git a/docs/.vitepress/lang.js b/docs/.vitepress/lang.js index 11c385cefd..e4cfefddd4 100644 --- a/docs/.vitepress/lang.js +++ b/docs/.vitepress/lang.js @@ -2,18 +2,15 @@ const supportedLangs = window.supportedLangs const cacheKey = 'preferred_lang' const defaultLang = 'en-US' - // docs supported languages - const langAlias = { - en: 'en-US', - fr: 'fr-FR', - es: 'es-ES', + const handleNavigatorLang = (navLang) => { + const { language, region } = new Intl.Locale(navLang).maximize() + return `${language}-${region}` } - let userPreferredLang = localStorage.getItem(cacheKey) || navigator.language - const language = - langAlias[userPreferredLang] || - (supportedLangs.includes(userPreferredLang) - ? userPreferredLang - : defaultLang) + let userPreferredLang = + localStorage.getItem(cacheKey) || handleNavigatorLang(navigator.language) + const language = supportedLangs.includes(userPreferredLang) + ? userPreferredLang + : defaultLang localStorage.setItem(cacheKey, language) userPreferredLang = language if (!location.pathname.startsWith(`/${userPreferredLang}`)) { diff --git a/docs/.vitepress/vitepress/components/home/svg/guide-svg.vue b/docs/.vitepress/vitepress/components/home/svg/guide-svg.vue index 0f6f2c32ab..191ece001d 100644 --- a/docs/.vitepress/vitepress/components/home/svg/guide-svg.vue +++ b/docs/.vitepress/vitepress/components/home/svg/guide-svg.vue @@ -13,10 +13,6 @@ d="M53 19C53 16.7909 54.7909 15 57 15H96L106.054 26.8815C106.665 27.6037 107 28.5191 107 29.4652V61C107 63.2091 105.209 65 103 65H57C54.7909 65 53 63.2091 53 61V19Z" fill="var(--guide-c-1)" /> - -import { computed, nextTick, onUpdated, ref, watch } from 'vue' +import { computed, nextTick, watch } from 'vue' import nprogress from 'nprogress' import { useData, useRoute } from 'vitepress' import { useSidebar } from '../composables/sidebar' @@ -16,23 +16,26 @@ const { hasSidebar } = useSidebar() const props = defineProps<{ isSidebarOpen: boolean }>() -const shouldUpdateProgress = ref(true) +let shouldUpdateProgress = true watch( () => props.isSidebarOpen, (val) => { // delay the flag update since watch is called before onUpdated nextTick(() => { - shouldUpdateProgress.value = !val + shouldUpdateProgress = !val }) } ) - -onUpdated(() => { - if (shouldUpdateProgress.value) { - nprogress.done() +watch( + () => route.path, + () => { + if (shouldUpdateProgress) nprogress.done() + }, + { + flush: 'post', } -}) +)