6 changed files with 87 additions and 10 deletions
@ -1,9 +0,0 @@
@@ -1,9 +0,0 @@
|
||||
import { ExternalAction } from '../interfaces/external-action.interface'; |
||||
|
||||
interface Props { |
||||
action: ExternalAction; |
||||
} |
||||
|
||||
export default function ExternalActionButton(props: Props) { |
||||
return <div>External action button component goes here</div>; |
||||
} |
||||
@ -0,0 +1,18 @@
@@ -0,0 +1,18 @@
|
||||
import { Button } from 'antd'; |
||||
import { ExternalAction } from '../interfaces/external-action.interface'; |
||||
|
||||
interface Props { |
||||
action: ExternalAction; |
||||
} |
||||
|
||||
export default function ExternalActionButton(props: Props) { |
||||
const { action } = props; |
||||
const { url, title, description, icon, color, openExternally } = action; |
||||
|
||||
return ( |
||||
<Button type="primary" style={{ backgroundColor: color }}> |
||||
<img src={icon} width="30px" alt={description} /> |
||||
{title} |
||||
</Button> |
||||
); |
||||
} |
||||
@ -0,0 +1,18 @@
@@ -0,0 +1,18 @@
|
||||
import { ExternalAction } from '../interfaces/external-action.interface'; |
||||
import ExternalActionButton from './ExternalActionButton'; |
||||
|
||||
interface Props { |
||||
actions: ExternalAction[]; |
||||
} |
||||
|
||||
export default function ExternalActionButtonRow(props: Props) { |
||||
const { actions } = props; |
||||
|
||||
return ( |
||||
<div> |
||||
{actions.map(action => ( |
||||
<ExternalActionButton key={action.id} action={action} /> |
||||
))} |
||||
</div> |
||||
); |
||||
} |
||||
@ -0,0 +1,37 @@
@@ -0,0 +1,37 @@
|
||||
import React from 'react'; |
||||
import { ComponentStory, ComponentMeta } from '@storybook/react'; |
||||
import ExternalActionButtonRow from '../components/action-buttons/ExternalActionButtonRow'; |
||||
|
||||
export default { |
||||
title: 'owncast/External action button row', |
||||
component: ExternalActionButtonRow, |
||||
parameters: {}, |
||||
} as ComponentMeta<typeof ExternalActionButtonRow>; |
||||
|
||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
||||
const Template: ComponentStory<typeof ExternalActionButtonRow> = args => ( |
||||
<ExternalActionButtonRow {...args} /> |
||||
); |
||||
|
||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
||||
export const Example1 = Template.bind({}); |
||||
Example1.args = { |
||||
actions: [ |
||||
{ |
||||
url: 'https://owncast.online/docs', |
||||
title: 'Documentation', |
||||
description: 'Owncast Documentation', |
||||
icon: 'https://owncast.online/images/logo.svg', |
||||
color: '#5232c8', |
||||
openExternally: false, |
||||
}, |
||||
{ |
||||
url: 'https://opencollective.com/embed/owncast/donate', |
||||
title: 'Support Owncast', |
||||
description: 'Contribute to Owncast', |
||||
icon: 'https://opencollective.com/static/images/opencollective-icon.svg', |
||||
color: '#2b4863', |
||||
openExternally: false, |
||||
}, |
||||
], |
||||
}; |
||||
Loading…
Reference in new issue