您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

constants.js 2.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. // @flow
  2. import React from 'react';
  3. import {
  4. Icon,
  5. IconCameraEmpty,
  6. IconCameraEmptyDisabled,
  7. IconMicrophoneEmpty,
  8. IconMicrophoneEmptySlash
  9. } from '../base/icons';
  10. /**
  11. * Reducer key for the feature.
  12. */
  13. export const REDUCER_KEY = 'features/participants-pane';
  14. export type ActionTrigger = 'Hover' | 'Permanent'
  15. /**
  16. * Enum of possible participant action triggers.
  17. */
  18. export const ACTION_TRIGGER: {HOVER: ActionTrigger, PERMANENT: ActionTrigger} = {
  19. HOVER: 'Hover',
  20. PERMANENT: 'Permanent'
  21. };
  22. export type MediaState = 'Muted' | 'ForceMuted' | 'Unmuted' | 'None';
  23. /**
  24. * Enum of possible participant media states.
  25. */
  26. export const MEDIA_STATE: {
  27. MUTED: MediaState,
  28. FORCE_MUTED: MediaState,
  29. UNMUTED: MediaState,
  30. NONE: MediaState,
  31. } = {
  32. MUTED: 'Muted',
  33. FORCE_MUTED: 'ForceMuted',
  34. UNMUTED: 'Unmuted',
  35. NONE: 'None'
  36. };
  37. export type QuickActionButtonType = 'Mute' | 'AskToUnmute' | 'None';
  38. /**
  39. * Enum of possible participant mute button states.
  40. */
  41. export const QUICK_ACTION_BUTTON: {
  42. MUTE: QuickActionButtonType,
  43. ASK_TO_UNMUTE: QuickActionButtonType,
  44. NONE: QuickActionButtonType
  45. } = {
  46. MUTE: 'Mute',
  47. ASK_TO_UNMUTE: 'AskToUnmute',
  48. NONE: 'None'
  49. };
  50. /**
  51. * Icon mapping for possible participant audio states.
  52. */
  53. export const AudioStateIcons: {[MediaState]: React$Element<any> | null} = {
  54. [MEDIA_STATE.FORCE_MUTED]: (
  55. <Icon
  56. color = '#E04757'
  57. size = { 16 }
  58. src = { IconMicrophoneEmptySlash } />
  59. ),
  60. [MEDIA_STATE.MUTED]: (
  61. <Icon
  62. size = { 16 }
  63. src = { IconMicrophoneEmptySlash } />
  64. ),
  65. [MEDIA_STATE.UNMUTED]: (
  66. <Icon
  67. color = '#1EC26A'
  68. size = { 16 }
  69. src = { IconMicrophoneEmpty } />
  70. ),
  71. [MEDIA_STATE.NONE]: null
  72. };
  73. /**
  74. * Icon mapping for possible participant video states.
  75. */
  76. export const VideoStateIcons = {
  77. [MEDIA_STATE.FORCE_MUTED]: (
  78. <Icon
  79. size = { 16 }
  80. src = { IconCameraEmptyDisabled } />
  81. ),
  82. [MEDIA_STATE.MUTED]: (
  83. <Icon
  84. size = { 16 }
  85. src = { IconCameraEmptyDisabled } />
  86. ),
  87. [MEDIA_STATE.UNMUTED]: (
  88. <Icon
  89. size = { 16 }
  90. src = { IconCameraEmpty } />
  91. ),
  92. [MEDIA_STATE.NONE]: null
  93. };