Render actual external action buttons. Closes #1997

This commit is contained in:
Gabe Kangas
2022-07-12 17:37:40 -07:00
parent 9212db100b
commit c6e1a452ab
2 changed files with 8 additions and 15 deletions

View File

@@ -9,7 +9,7 @@ interface Props {
} }
export default function ActionButton({ export default function ActionButton({
action: { url, title, description, icon, openExternally }, action: { url, title, description, icon, color, openExternally },
}: Props) { }: Props) {
const [showModal, setShowModal] = useState(false); const [showModal, setShowModal] = useState(false);
@@ -23,7 +23,12 @@ export default function ActionButton({
return ( return (
<> <>
<Button type="primary" className={`${s.button}`} onClick={buttonClicked}> <Button
type="primary"
className={`${s.button}`}
onClick={buttonClicked}
style={{ backgroundColor: color }}
>
<img src={icon} className={`${s.icon}`} alt={description} /> <img src={icon} className={`${s.icon}`} alt={description} />
{title} {title}
</Button> </Button>

View File

@@ -53,22 +53,10 @@ export default function ContentComponent() {
const chatUserId = useRecoilValue<string>(chatUserIdAtom); const chatUserId = useRecoilValue<string>(chatUserIdAtom);
const { viewerCount, lastConnectTime, lastDisconnectTime } = const { viewerCount, lastConnectTime, lastDisconnectTime } =
useRecoilValue<ServerStatus>(serverStatusState); useRecoilValue<ServerStatus>(serverStatusState);
const { extraPageContent, version, name, summary } = clientConfig; const { extraPageContent, version, name, summary, externalActions } = clientConfig;
const [showNotifyReminder, setShowNotifyReminder] = useState(false); const [showNotifyReminder, setShowNotifyReminder] = useState(false);
const [showNotifyPopup, setShowNotifyPopup] = useState(false); const [showNotifyPopup, setShowNotifyPopup] = useState(false);
// This is example content. It should be removed.
const externalActions = [
{
url: 'https://owncast.online/docs',
title: 'Example button',
description: 'Example button description',
icon: 'https://owncast.online/images/logo.svg',
color: '#5232c8',
openExternally: false,
},
];
const externalActionButtons = externalActions.map(action => ( const externalActionButtons = externalActions.map(action => (
<ActionButton key={action.url} action={action} /> <ActionButton key={action.url} action={action} />
)); ));