diff --git a/src/renderer/containers/Console/OBSWebsocketNotice.tsx b/src/renderer/containers/Console/OBSWebsocketNotice.tsx new file mode 100644 index 000000000..b4e2dada0 --- /dev/null +++ b/src/renderer/containers/Console/OBSWebsocketNotice.tsx @@ -0,0 +1,50 @@ +import { css } from "@emotion/react"; +import Dialog from "@mui/material/Dialog"; +import DialogContent from "@mui/material/DialogContent"; +import DialogTitle from "@mui/material/DialogTitle"; +import React from "react"; + +import { ExternalLink as A } from "@/components/ExternalLink"; + +const OBS_WEBSOCKET_NOTICE_KEY = "SEEN_OBS_WEBSOCKET_NOTICE"; + +export const OBSWebsocketNotice = () => { + const [seenNotice, setSeenNotice] = React.useState( + localStorage.getItem(OBS_WEBSOCKET_NOTICE_KEY) === "true", + ); + const onClose = () => { + localStorage.setItem(OBS_WEBSOCKET_NOTICE_KEY, "true"); + setSeenNotice(true); + }; + + if (seenNotice) { + return null; + } + + return ( + + OBS Websocket 5.0 Update + +
+ Slippi Launcher now supports OBS Websocket 5.0+ which comes standard in OBS 28+, but no longer supports + version 4.9.1. +
+
+ If you are still on OBS 27, install{" "} + OBS Websocket 5.0.1. You can + install the 5.0 and 4.9-compat versions at the same time if needed. +
+
+ You will also need to update your console connection settings if you use the Autoswitcher because the OBS IP + and port are now separate fields in the settings. +
+
+
+ ); +}; diff --git a/src/renderer/containers/Console/index.tsx b/src/renderer/containers/Console/index.tsx index f14d7e005..fd1a6d643 100644 --- a/src/renderer/containers/Console/index.tsx +++ b/src/renderer/containers/Console/index.tsx @@ -23,6 +23,7 @@ import { useServices } from "@/services"; import { AddConnectionDialog } from "./AddConnectionDialog"; import { NewConnectionList } from "./NewConnectionList"; +import { OBSWebsocketNotice } from "./OBSWebsocketNotice"; import { SavedConnectionsList } from "./SavedConnectionsList"; const Outer = styled.div` @@ -158,6 +159,7 @@ export const Console: React.FC = () => { onCancel={onCancel} disabled={consoleIsConnected(currentFormValues?.ipAddress)} /> + ); };