diff --git a/src/frontend/src/features/rooms/livekit/components/Tools.tsx b/src/frontend/src/features/rooms/livekit/components/Tools.tsx
new file mode 100644
index 00000000..cc55273b
--- /dev/null
+++ b/src/frontend/src/features/rooms/livekit/components/Tools.tsx
@@ -0,0 +1,95 @@
+import { A, Div, Text } from '@/primitives'
+import { css } from '@/styled-system/css'
+import { Button as RACButton } from 'react-aria-components'
+import { useTranslation } from 'react-i18next'
+import { CRISP_HELP_ARTICLE_MORE_TOOLS } from '@/utils/constants'
+import { ReactNode } from 'react'
+
+export interface ToolsButtonProps {
+ icon: ReactNode
+ title: string
+ description: string
+ onPress: () => void
+}
+
+const ToolButton = ({
+ icon,
+ title,
+ description,
+ onPress,
+}: ToolsButtonProps) => {
+ return (
+
+
+ {icon}
+
+
+
+ {title}
+
+
+ {description}
+
+
+
+ )
+}
+
+export const Tools = () => {
+ const { t } = useTranslation('rooms', { keyPrefix: 'moreTools' })
+ return (
+
+ )
+}
diff --git a/src/frontend/src/features/rooms/livekit/components/controls/TranscriptToggle.tsx b/src/frontend/src/features/rooms/livekit/components/controls/ToolsToggle.tsx
similarity index 60%
rename from src/frontend/src/features/rooms/livekit/components/controls/TranscriptToggle.tsx
rename to src/frontend/src/features/rooms/livekit/components/controls/ToolsToggle.tsx
index 12c34c0a..782377c1 100644
--- a/src/frontend/src/features/rooms/livekit/components/controls/TranscriptToggle.tsx
+++ b/src/frontend/src/features/rooms/livekit/components/controls/ToolsToggle.tsx
@@ -1,24 +1,19 @@
import { ToggleButton } from '@/primitives'
-import { RiBardLine } from '@remixicon/react'
+import { RiShapesLine } from '@remixicon/react'
import { useTranslation } from 'react-i18next'
import { useSidePanel } from '../../hooks/useSidePanel'
-import { useHasTranscriptAccess } from '../../hooks/useHasTranscriptAccess'
import { css } from '@/styled-system/css'
import { ToggleButtonProps } from '@/primitives/ToggleButton'
-export const TranscriptToggle = ({
+export const ToolsToggle = ({
variant = 'primaryTextDark',
onPress,
...props
}: ToggleButtonProps) => {
- const { t } = useTranslation('rooms', { keyPrefix: 'controls.transcript' })
+ const { t } = useTranslation('rooms', { keyPrefix: 'controls.tools' })
- const { isTranscriptOpen, toggleTranscript } = useSidePanel()
- const tooltipLabel = isTranscriptOpen ? 'open' : 'closed'
-
- const hasTranscriptAccess = useHasTranscriptAccess()
-
- if (!hasTranscriptAccess) return
+ const { isToolsOpen, toggleTools } = useSidePanel()
+ const tooltipLabel = isToolsOpen ? 'open' : 'closed'
return (
{
- toggleTranscript()
+ toggleTools()
onPress?.(e)
}}
{...props}
- data-attr="toggle-transcript"
+ data-attr="toggle-tools"
>
-
+
)
diff --git a/src/frontend/src/features/rooms/livekit/hooks/useSidePanel.ts b/src/frontend/src/features/rooms/livekit/hooks/useSidePanel.ts
index c2cf7d34..dd4cca3a 100644
--- a/src/frontend/src/features/rooms/livekit/hooks/useSidePanel.ts
+++ b/src/frontend/src/features/rooms/livekit/hooks/useSidePanel.ts
@@ -5,7 +5,7 @@ export enum PanelId {
PARTICIPANTS = 'participants',
EFFECTS = 'effects',
CHAT = 'chat',
- TRANSCRIPT = 'transcript',
+ TOOLS = 'tools',
ADMIN = 'admin',
}
@@ -16,7 +16,7 @@ export const useSidePanel = () => {
const isParticipantsOpen = activePanelId == PanelId.PARTICIPANTS
const isEffectsOpen = activePanelId == PanelId.EFFECTS
const isChatOpen = activePanelId == PanelId.CHAT
- const isTranscriptOpen = activePanelId == PanelId.TRANSCRIPT
+ const isToolsOpen = activePanelId == PanelId.TOOLS
const isAdminOpen = activePanelId == PanelId.ADMIN
const isSidePanelOpen = !!activePanelId
@@ -36,8 +36,8 @@ export const useSidePanel = () => {
layoutStore.activePanelId = isEffectsOpen ? null : PanelId.EFFECTS
}
- const toggleTranscript = () => {
- layoutStore.activePanelId = isTranscriptOpen ? null : PanelId.TRANSCRIPT
+ const toggleTools = () => {
+ layoutStore.activePanelId = isToolsOpen ? null : PanelId.TOOLS
}
return {
@@ -45,13 +45,13 @@ export const useSidePanel = () => {
toggleParticipants,
toggleChat,
toggleEffects,
- toggleTranscript,
+ toggleTools,
toggleAdmin,
isChatOpen,
isParticipantsOpen,
isEffectsOpen,
isSidePanelOpen,
- isTranscriptOpen,
+ isToolsOpen,
isAdminOpen,
}
}
diff --git a/src/frontend/src/features/rooms/livekit/prefabs/ControlBar/MobileControlBar.tsx b/src/frontend/src/features/rooms/livekit/prefabs/ControlBar/MobileControlBar.tsx
index f137c1c8..e16bb48a 100644
--- a/src/frontend/src/features/rooms/livekit/prefabs/ControlBar/MobileControlBar.tsx
+++ b/src/frontend/src/features/rooms/livekit/prefabs/ControlBar/MobileControlBar.tsx
@@ -21,7 +21,7 @@ import { useSidePanel } from '../../hooks/useSidePanel'
import { LinkButton } from '@/primitives'
import { useSettingsDialog } from '../../components/controls/SettingsDialogContext'
import { ResponsiveMenu } from './ResponsiveMenu'
-import { TranscriptToggle } from '../../components/controls/TranscriptToggle'
+import { ToolsToggle } from '../../components/controls/ToolsToggle'
import { CameraSwitchButton } from '../../components/controls/CameraSwitchButton'
export function MobileControlBar({
@@ -133,7 +133,7 @@ export function MobileControlBar({
description={true}
onPress={() => setIsMenuOpened(false)}
/>
- setIsMenuOpened(false)}
/>
diff --git a/src/frontend/src/features/rooms/livekit/prefabs/ControlBar/MoreOptions.tsx b/src/frontend/src/features/rooms/livekit/prefabs/ControlBar/MoreOptions.tsx
index f641c230..8715b95b 100644
--- a/src/frontend/src/features/rooms/livekit/prefabs/ControlBar/MoreOptions.tsx
+++ b/src/frontend/src/features/rooms/livekit/prefabs/ControlBar/MoreOptions.tsx
@@ -1,7 +1,7 @@
import { css } from '@/styled-system/css'
import { ChatToggle } from '../../components/controls/ChatToggle'
import { ParticipantsToggle } from '../../components/controls/Participants/ParticipantsToggle'
-import { TranscriptToggle } from '../../components/controls/TranscriptToggle'
+import { ToolsToggle } from '../../components/controls/ToolsToggle'
import { AdminToggle } from '../../components/AdminToggle'
import { useSize } from '../../hooks/useResizeObserver'
import { useState, RefObject } from 'react'
@@ -20,7 +20,7 @@ const NavigationControls = ({
<>
-
+
>
)
diff --git a/src/frontend/src/locales/de/rooms.json b/src/frontend/src/locales/de/rooms.json
index 6144b281..824a8d2b 100644
--- a/src/frontend/src/locales/de/rooms.json
+++ b/src/frontend/src/locales/de/rooms.json
@@ -104,7 +104,7 @@
"open": "",
"closed": ""
},
- "transcript": {
+ "tools": {
"open": "",
"closed": ""
},
@@ -169,20 +169,27 @@
"effects": "",
"chat": "",
"transcript": "",
- "admin": ""
+ "admin": "",
+ "tools": ""
},
"content": {
"participants": "",
"effects": "",
"chat": "",
"transcript": "",
- "admin": ""
+ "admin": "",
+ "tools": ""
},
"closeButton": ""
},
"chat": {
"disclaimer": ""
},
+ "moreTools": {
+ "body": "",
+ "moreLink": "",
+ "tools": {}
+ },
"transcript": {
"start": {
"heading": "",
diff --git a/src/frontend/src/locales/en/rooms.json b/src/frontend/src/locales/en/rooms.json
index 54121eac..14de0bd4 100644
--- a/src/frontend/src/locales/en/rooms.json
+++ b/src/frontend/src/locales/en/rooms.json
@@ -103,9 +103,9 @@
"open": "Hide everyone",
"closed": "See everyone"
},
- "transcript": {
- "open": "Hide AI assistant",
- "closed": "Show AI assistant"
+ "tools": {
+ "open": "Hide more tools",
+ "closed": "Show more tools"
},
"admin": {
"open": "Hide admin",
@@ -168,20 +168,27 @@
"effects": "Effects",
"chat": "Messages in the chat",
"transcript": "AI Assistant",
- "admin": "Admin settings"
+ "admin": "Admin settings",
+ "tools": "More tools"
},
"content": {
"participants": "participants",
"effects": "effects",
"chat": "messages",
"transcript": "AI assistant",
- "admin": "Admin settings"
+ "admin": "admin settings",
+ "tools": "more tools"
},
"closeButton": "Hide {{content}}"
},
"chat": {
"disclaimer": "The messages are visible to participants only at the time they are sent. All messages are deleted at the end of the call."
},
+ "moreTools": {
+ "body": "Access more tools in Visio to enhance your meetings,",
+ "moreLink": "learn more",
+ "tools": {}
+ },
"transcript": {
"start": {
"heading": "Start the Assistant!",
diff --git a/src/frontend/src/locales/fr/rooms.json b/src/frontend/src/locales/fr/rooms.json
index a8ccb8e1..48718596 100644
--- a/src/frontend/src/locales/fr/rooms.json
+++ b/src/frontend/src/locales/fr/rooms.json
@@ -103,9 +103,9 @@
"open": "Masquer les participants",
"closed": "Afficher les participants"
},
- "transcript": {
- "open": "Masquer l'assistant IA",
- "closed": "Afficher l'assistant IA"
+ "tools": {
+ "open": "Masquer plus d'outils",
+ "closed": "Afficher plus d'outils"
},
"admin": {
"open": "Masquer l'admin",
@@ -168,20 +168,27 @@
"effects": "Effets",
"chat": "Messages dans l'appel",
"transcript": "Assistant IA",
- "admin": "Commandes de l'organisateur"
+ "admin": "Commandes de l'organisateur",
+ "tools": "Plus d'outils"
},
"content": {
"participants": "les participants",
"effects": "les effets",
"chat": "les messages",
"transcript": "l'assistant IA",
- "admin": "Commandes de l'organisateur"
+ "admin": "commandes de l'organisateur",
+ "tools": "plus d'outils"
},
"closeButton": "Masquer {{content}}"
},
"chat": {
"disclaimer": "Les messages sont visibles par les participants uniquement au moment de\nleur envoi. Tous les messages sont supprimés à la fin de l'appel."
},
+ "moreTools": {
+ "body": "Accèder à d'avantage d'outils dans Visio pour améliorer vos réunions,",
+ "moreLink": "en savoir plus",
+ "tools": {}
+ },
"transcript": {
"start": {
"heading": "Démarrer l'assistant !",
diff --git a/src/frontend/src/locales/nl/rooms.json b/src/frontend/src/locales/nl/rooms.json
index c57a6308..8b300512 100644
--- a/src/frontend/src/locales/nl/rooms.json
+++ b/src/frontend/src/locales/nl/rooms.json
@@ -103,9 +103,9 @@
"open": "Verberg iedereen",
"closed": "Toon iedereen"
},
- "transcript": {
- "open": "Verberg AI-assistent",
- "closed": "Toon AI-assistant"
+ "tools": {
+ "open": "Meer tools verbergen",
+ "closed": "Meer tools weergeven"
},
"admin": {
"open": "Verberg beheerder",
@@ -168,20 +168,27 @@
"effects": "Effecten",
"chat": "Berichten in de chat",
"transcript": "AI-assistent",
- "admin": "Beheerdersbediening"
+ "admin": "Beheerdersbediening",
+ "tools": "Meer tools"
},
"content": {
"participants": "deelnemers",
"effects": "effecten",
"chat": "berichten",
"transcript": "AI-assistent",
- "admin": "Beheerdersbediening"
+ "admin": "beheerdersbediening",
+ "tools": "meer tools"
},
"closeButton": "Verberg {{content}}"
},
"chat": {
"disclaimer": "De berichten zijn alleen voor de deelnemers zichtbaar op het moment dat ze worden verzonden. Alle berichten worden verwijderd aan het einde van het gesprek."
},
+ "moreTools": {
+ "body": "Toegang tot meer tools in Visio om je vergaderingen te verbeteren,",
+ "moreLink": "lees meer",
+ "tools": {}
+ },
"transcript": {
"start": {
"heading": "Start de assistent!",
diff --git a/src/frontend/src/utils/constants.ts b/src/frontend/src/utils/constants.ts
index 38b5ffb4..55b469d3 100644
--- a/src/frontend/src/utils/constants.ts
+++ b/src/frontend/src/utils/constants.ts
@@ -3,3 +3,6 @@ export const GRIST_FEEDBACKS_FORM =
export const BETA_USERS_FORM_URL =
'https://grist.numerique.gouv.fr/o/docs/forms/3fFfvJoTBEQ6ZiMi8zsQwX/17' as const
+
+export const CRISP_HELP_ARTICLE_MORE_TOOLS =
+ 'https://lasuite.crisp.help/fr/article/visio-tools-bvxj23' as const