useGuide.ts 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. import { Config, driver } from 'driver.js'
  2. import 'driver.js/dist/driver.css'
  3. import { useDesign } from '@/hooks/web/useDesign'
  4. import { useI18n } from '@/hooks/web/useI18n'
  5. const { t } = useI18n()
  6. const { variables } = useDesign()
  7. export const useGuide = (options?: Config) => {
  8. const driverObj = driver(
  9. options || {
  10. showProgress: true,
  11. nextBtnText: t('common.nextLabel'),
  12. prevBtnText: t('common.prevLabel'),
  13. doneBtnText: t('common.doneLabel'),
  14. steps: [
  15. {
  16. element: `#${variables.namespace}-menu`,
  17. popover: {
  18. title: t('common.menu'),
  19. description: t('common.menuDes'),
  20. side: 'right'
  21. }
  22. },
  23. {
  24. element: `#${variables.namespace}-tool-header`,
  25. popover: {
  26. title: t('common.tool'),
  27. description: t('common.toolDes'),
  28. side: 'left'
  29. }
  30. },
  31. {
  32. element: `#${variables.namespace}-tags-view`,
  33. popover: {
  34. title: t('common.tagsView'),
  35. description: t('common.tagsViewDes'),
  36. side: 'bottom'
  37. }
  38. }
  39. ]
  40. }
  41. )
  42. return {
  43. ...driverObj
  44. }
  45. }