()
+ const [isLoading, setIsLoading] = useState(false)
+ const {
+ userChoices: { username },
+ } = usePersistentUserChoices()
+
+ const { mutateAsync: createRoom } = useCreateRoom()
+ const { ensureAuth } = useEnsureAuth()
+
+ const submitCreateRoom = async () => {
+ setIsLoading(true)
+ const slug = generateRoomId()
+ const data = await createRoom({ slug, username })
+ const roomUrlTmp = getRouteUrl('room', data.slug)
+ setRoomUrl(roomUrlTmp)
+ setIsLoading(false)
+ SdkReverseClient.post(ClientMessageType.ROOM_CREATED, {
+ url: roomUrlTmp,
+ })
+ }
+
+ const submit = async () => {
+ await ensureAuth()
+ submitCreateRoom()
+ }
+
+ return (
+
+ {roomUrl ? (
+
+ ) : (
+ }
+ >
+ {t('label')}
+
+ )}
+
+ )
+}
+
+const RoomUrl = ({ roomUrl }: { roomUrl: string }) => {
+ const [isCopied, setIsCopied] = useState(false)
+
+ const copy = () => {
+ navigator.clipboard.writeText(roomUrl!)
+ setIsCopied(true)
+ setTimeout(() => setIsCopied(false), 1000)
+ }
+
+ return (
+
+
+ {roomUrl}
+
+
+
+ )
+}
diff --git a/src/frontend/src/locales/de/sdk.json b/src/frontend/src/locales/de/sdk.json
new file mode 100644
index 00000000..4e02be40
--- /dev/null
+++ b/src/frontend/src/locales/de/sdk.json
@@ -0,0 +1,5 @@
+{
+ "createButton": {
+ "label": ""
+ }
+}
diff --git a/src/frontend/src/locales/en/sdk.json b/src/frontend/src/locales/en/sdk.json
new file mode 100644
index 00000000..5d713724
--- /dev/null
+++ b/src/frontend/src/locales/en/sdk.json
@@ -0,0 +1,5 @@
+{
+ "createButton": {
+ "label": "Create a Visio link"
+ }
+}
diff --git a/src/frontend/src/locales/fr/sdk.json b/src/frontend/src/locales/fr/sdk.json
new file mode 100644
index 00000000..0bf7a141
--- /dev/null
+++ b/src/frontend/src/locales/fr/sdk.json
@@ -0,0 +1,5 @@
+{
+ "createButton": {
+ "label": "Créer un lien Visio"
+ }
+}