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

constants.js 2.3KB

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