github.com/e154/smart-home@v0.17.2-0.20240311175135-e530a6e5cd45/static_source/admin/src/hooks/web/useNProgress.ts (about)

     1  import { nextTick, unref } from 'vue'
     2  import type { NProgressOptions } from 'nprogress'
     3  import NProgress from 'nprogress'
     4  import 'nprogress/nprogress.css'
     5  import { useCssVar } from '@vueuse/core'
     6  
     7  const primaryColor = useCssVar('--el-color-primary', document.documentElement)
     8  
     9  export const useNProgress = () => {
    10    NProgress.configure({ showSpinner: false } as NProgressOptions)
    11  
    12    const initColor = async () => {
    13      await nextTick()
    14      const bar = document.getElementById('nprogress')?.getElementsByClassName('bar')[0] as ElRef
    15      if (bar) {
    16        bar.style.background = unref(primaryColor.value)
    17      }
    18    }
    19  
    20    initColor()
    21  
    22    const start = () => {
    23      NProgress.start()
    24    }
    25  
    26    const done = () => {
    27      NProgress.done()
    28    }
    29  
    30    return {
    31      start,
    32      done
    33    }
    34  }