2023-11-07 06:35:05 +03:00
import { StoryFn , Meta } from '@storybook/react' ;
2022-10-22 08:24:29 +03:00
import { action } from '@storybook/addon-actions' ;
2022-09-07 10:00:28 +03:00
import { ActionButtonRow } from './ActionButtonRow' ;
import { ActionButton } from '../ActionButton/ActionButton' ;
2022-04-28 09:19:20 +03:00
2023-11-07 06:35:05 +03:00
const meta = {
2022-05-18 00:24:48 +03:00
title : 'owncast/Components/Action Buttons/Buttons Row' ,
2022-05-08 02:13:06 +03:00
component : ActionButtonRow ,
2022-05-13 06:52:19 +03:00
parameters : {
docs : {
description : {
component : ` This is a horizontal row of buttons that could be statically created by the Owncast application (such as Notify, Follow) or are user-generated external actions (Donate, Learn more, etc).
There can be any number of buttons , including zero . They should wrap if needed and handle resizing . ` ,
} ,
} ,
} ,
2023-11-07 06:35:05 +03:00
} satisfies Meta < typeof ActionButtonRow > ;
2022-04-28 09:19:20 +03:00
2023-11-07 06:35:05 +03:00
export default meta ;
const Template : StoryFn < typeof ActionButtonRow > = args = > {
2022-05-12 09:31:31 +03:00
const { buttons } = args as any ;
return < ActionButtonRow > { buttons } < / ActionButtonRow > ;
} ;
2022-04-28 09:19:20 +03:00
2022-05-08 02:13:06 +03:00
const actions = [
{
2022-04-28 09:19:20 +03:00
url : 'https://owncast.online/docs' ,
title : 'Documentation' ,
description : 'Owncast Documentation' ,
icon : 'https://owncast.online/images/logo.svg' ,
color : '#5232c8' ,
openExternally : false ,
} ,
2022-05-08 02:13:06 +03:00
{
2022-04-28 09:19:20 +03:00
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 ,
} ,
2022-05-08 02:13:06 +03:00
] ;
2022-10-22 08:24:29 +03:00
const itemSelected = a = > {
console . log ( 'itemSelected' , a ) ;
action ( a . title ) ;
} ;
const buttons = actions . map ( a = > < ActionButton externalActionSelected = { itemSelected } action = { a } / > ) ;
2023-11-07 06:35:05 +03:00
export const Example1 = {
render : Template ,
args : {
buttons ,
} ,
2022-04-28 09:19:20 +03:00
} ;