diff --git a/web/pages/_app.tsx b/web/pages/_app.tsx
index 448ebecddd..208b832ffc 100644
--- a/web/pages/_app.tsx
+++ b/web/pages/_app.tsx
@@ -10,14 +10,18 @@ import '../styles/config-formfields.scss';
import { AppProps } from 'next/app';
import ServerStatusProvider from '../utils/server-status-context';
+import AlertMessageProvider from '../utils/alert-message-context';
+
import MainLayout from './components/main-layout';
function App({ Component, pageProps }: AppProps) {
return (
-
-
-
+
+
+
+
+
);
}
diff --git a/web/pages/components/config/edit-server-details.tsx b/web/pages/components/config/edit-server-details.tsx
index 6799221214..82389086f7 100644
--- a/web/pages/components/config/edit-server-details.tsx
+++ b/web/pages/components/config/edit-server-details.tsx
@@ -6,6 +6,8 @@ import { TEXTFIELD_TYPE_NUMBER, TEXTFIELD_TYPE_PASSWORD } from './form-textfield
import TextFieldWithSubmit from './form-textfield-with-submit';
import { ServerStatusContext } from '../../../utils/server-status-context';
+import { AlertMessageContext } from '../../../utils/alert-message-context';
+
import {
TEXTFIELD_PROPS_FFMPEG,
TEXTFIELD_PROPS_RTMP_PORT,
@@ -18,6 +20,8 @@ import { UpdateArgs } from '../../../types/config-section';
export default function EditInstanceDetails() {
const [formDataValues, setFormDataValues] = useState(null);
const serverStatusData = useContext(ServerStatusContext);
+ const { setMessage } = useContext(AlertMessageContext);
+
const { serverConfig } = serverStatusData || {};
const { streamKey, ffmpegPath, rtmpServerPort, webServerPort } = serverConfig;
@@ -46,6 +50,10 @@ export default function EditInstanceDetails() {
});
};
+ const showConfigurationRestartMessage = () => {
+ setMessage('Updating server settings requires a restart of your Owncast server.')
+ }
+
function generateStreamKey() {
let key = '';
for (let i = 0; i < 3; i += 1) {
@@ -102,6 +110,7 @@ export default function EditInstanceDetails() {
initialValue={webServerPort}
type={TEXTFIELD_TYPE_NUMBER}
onChange={handleFieldChange}
+ onSubmit={showConfigurationRestartMessage}
/>
);
diff --git a/web/pages/components/config/edit-storage.tsx b/web/pages/components/config/edit-storage.tsx
index b6df527491..2a12a6846d 100644
--- a/web/pages/components/config/edit-storage.tsx
+++ b/web/pages/components/config/edit-storage.tsx
@@ -3,6 +3,8 @@ import classNames from 'classnames';
import React, { useContext, useState, useEffect } from 'react';
import { UpdateArgs } from '../../../types/config-section';
import { ServerStatusContext } from '../../../utils/server-status-context';
+import { AlertMessageContext } from '../../../utils/alert-message-context';
+
import {
postConfigUpdateToAPI,
API_S3_INFO,
@@ -56,6 +58,8 @@ export default function EditStorage() {
const serverStatusData = useContext(ServerStatusContext);
const { serverConfig, setFieldInConfigState } = serverStatusData || {};
+ const {message, setMessage} = useContext(AlertMessageContext);
+
const { s3 } = serverConfig;
const {
accessKey = '',
@@ -114,6 +118,7 @@ export default function EditStorage() {
setSubmitStatus(createInputStatus(STATUS_SUCCESS, 'Updated.'));
resetTimer = setTimeout(resetStates, RESET_TIMEOUT);
setSaved(true);
+ setMessage('Changing your storage configuration will take place the next time you start a new stream.');
},
onError: (message: string) => {
setSubmitStatus(createInputStatus(STATUS_ERROR, message));
@@ -139,14 +144,6 @@ export default function EditStorage() {
enabled: shouldDisplayForm,
});
- const saveWarning = saved ? (
- ) : null;
-
const isSaveable = checkSaveable(formDataValues, s3);
return (
@@ -219,8 +216,6 @@ export default function EditStorage() {
- {saveWarning}
-
{statusIndicatorWithThumb}
+
+ {headerAlertMessage}
+
{children}