types.ts 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. import { tuple } from 'utils/util'
  2. export const shareVizsType = tuple('dashboard', 'display', 'widget')
  3. export const mode = tuple('NORMAL', 'AUTH', 'PASSWORD', '')
  4. export const permission = tuple('SHARER', 'VIEWER')
  5. export const copyType = tuple('link', 'all')
  6. export type TShareVizsType = typeof shareVizsType[number]
  7. export type TPermission = typeof permission[number]
  8. export type Tmode = typeof mode[number]
  9. export type TCopyType = typeof copyType[number]
  10. export type TsType = (sType: Tmode) => void
  11. export interface ISharePanel {
  12. id: number
  13. itemId?: number
  14. type: TShareVizsType
  15. title: string
  16. shareToken: string
  17. authorizedShareToken: string
  18. loading: boolean
  19. }
  20. export interface IShareTokenParams {
  21. id: number
  22. mode: Tmode
  23. expired: string
  24. itemId?: number
  25. permission?: TPermission
  26. roles?: number[]
  27. viewers?: number[]
  28. }
  29. export interface ICtrl {
  30. mode: Tmode
  31. onModeChange: TsType
  32. }
  33. export interface IContent {
  34. vizType: TShareVizsType
  35. loading: boolean
  36. mode: Tmode
  37. shareToken: string
  38. loadToken: () => void
  39. authorizedShareToken: string
  40. }
  41. export interface IRegularContent extends IContent {
  42. token: string
  43. vizType: TShareVizsType
  44. }
  45. export interface IAuthContent extends IContent {
  46. authUser: string
  47. vizType: TShareVizsType
  48. authorized: boolean
  49. token: string
  50. }
  51. export interface ISignalContent extends IContent {
  52. authUser: string
  53. vizType: TShareVizsType
  54. }