You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

constants.tsx 2.5KB

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