2023-02-28 18:56:29 +00:00
import { useThemeSwitcher } from '@vegaprotocol/utils' ;
2022-12-21 02:55:35 +00:00
import classNames from 'classnames' ;
import { useEffect } from 'react' ;
2022-08-31 04:35:46 +00:00
import '../src/styles.css' ;
2022-02-21 15:41:32 +00:00
export const parameters = {
actions : { argTypesRegex : '^on[A-Z].*' } ,
2022-06-10 13:52:39 +00:00
backgrounds : { disable : true } ,
2022-08-10 12:24:51 +00:00
layout : 'fullscreen' ,
2022-07-07 11:01:03 +00:00
a11y : {
config : {
rules : [
{
// Disabled only for storybook because we display both the dark and light variants of the components on the same page without differentiating the ids, so it will always error.
id : 'duplicate-id-aria' ,
selector : '[data-testid="form-group"] > label' ,
} ,
{
// Disabled because we can't control the radix radio group component and it claims to be accessible to begin with, so hopefully no issues.
id : 'button-name' ,
selector : '[role=radiogroup] > button' ,
} ,
] ,
} ,
} ,
2022-02-21 15:41:32 +00:00
} ;
2022-08-10 12:24:51 +00:00
export const globalTypes = {
theme : {
name : 'Theme' ,
description : 'Global theme for components' ,
defaultValue : 'dark' ,
toolbar : {
icon : 'circlehollow' ,
items : [
{ value : 'light' , title : 'Light' } ,
{ value : 'dark' , title : 'Dark' } ,
{ value : 'sideBySide' , title : 'Side by side' } ,
] ,
showName : true ,
} ,
} ,
} ;
2022-12-21 02:55:35 +00:00
const StoryWrapper = ( { children , fill } ) => {
const classes = classNames (
'p-4' ,
'bg-white dark:bg-black' ,
'text-neutral-800 dark:text-neutral-200' ,
{
'w-screen h-screen' : fill ,
}
) ;
return < div className = { classes } > { children } < / d i v > ;
} ;
2022-08-10 12:24:51 +00:00
2022-12-21 02:55:35 +00:00
const ThemeWrapper = ( Story , context ) => {
2022-08-10 12:24:51 +00:00
const theme = context . parameters . theme || context . globals . theme ;
2022-12-21 02:55:35 +00:00
const { setTheme } = useThemeSwitcher ( ) ;
2022-08-10 12:24:51 +00:00
2022-12-21 02:55:35 +00:00
useEffect ( ( ) => {
// in side by side mode a 'dark' class on the html tag will interfere
// making the light 'side' dark, so remove it in that case
if ( theme === 'sideBySide' ) {
document . documentElement . classList . remove ( 'dark' ) ;
} else {
setTheme ( theme ) ;
}
} , [ setTheme , theme ] ) ;
2022-08-10 12:24:51 +00:00
return theme === 'sideBySide' ? (
< >
2022-12-21 02:55:35 +00:00
< div className = "bg-white text-black" >
2022-08-10 12:24:51 +00:00
< StoryWrapper >
2022-03-04 16:21:24 +00:00
< Story / >
Feat/63 Deal ticket (#82)
* scaffold dealticket package, remove trading views from react-helpers
* add deal ticket component, add intent utils, expand dialog and form group styles
* add splash component, show market not found message if market doesnt exist
* tidy up error handling
* add handleError method for vega tx hook
* add better testname for provider test, flesh out tests a bit more for deal ticket
* Add unit tests for useVegaTransaction and useOrderSubmit hooks
* add wrapper component for order dialog styles
* add vega styled loader to ui toolkit and use in order dialog
* add title prop to order dialog
* split limit and market tickets into own files
* add button radio component
* revert dialog styles
* move splash component to ui-toolkit, add story
* convert intent to enum
* Make button always type=button unless type prop is passed
* inline filter logic for tif selector
* add date-fns, add datetime to helpers
* add order types to wallet package, make price undefined if order type is market
* use enums in deal ticket logic
* tidy up order state by moving submit and transaction hooks out of deal ticket
* add comment for dialog styles
* remove decimal from price input
* add types package, delete old generated types from trading project
* rename types package to graphql
* update generate command to point to correct locations
* fix use order submit test
* use intent shadow helper
* remove date-fns and format manually, update submit button error to use input-error
* remove stray console.log
2022-03-17 19:35:46 +00:00
< / S t o r y W r a p p e r >
2022-08-10 12:24:51 +00:00
< / d i v >
2022-12-21 02:55:35 +00:00
< div className = "dark bg-black text-white" >
Feat/63 Deal ticket (#82)
* scaffold dealticket package, remove trading views from react-helpers
* add deal ticket component, add intent utils, expand dialog and form group styles
* add splash component, show market not found message if market doesnt exist
* tidy up error handling
* add handleError method for vega tx hook
* add better testname for provider test, flesh out tests a bit more for deal ticket
* Add unit tests for useVegaTransaction and useOrderSubmit hooks
* add wrapper component for order dialog styles
* add vega styled loader to ui toolkit and use in order dialog
* add title prop to order dialog
* split limit and market tickets into own files
* add button radio component
* revert dialog styles
* move splash component to ui-toolkit, add story
* convert intent to enum
* Make button always type=button unless type prop is passed
* inline filter logic for tif selector
* add date-fns, add datetime to helpers
* add order types to wallet package, make price undefined if order type is market
* use enums in deal ticket logic
* tidy up order state by moving submit and transaction hooks out of deal ticket
* add comment for dialog styles
* remove decimal from price input
* add types package, delete old generated types from trading project
* rename types package to graphql
* update generate command to point to correct locations
* fix use order submit test
* use intent shadow helper
* remove date-fns and format manually, update submit button error to use input-error
* remove stray console.log
2022-03-17 19:35:46 +00:00
< StoryWrapper >
2022-03-04 16:21:24 +00:00
< Story / >
Feat/63 Deal ticket (#82)
* scaffold dealticket package, remove trading views from react-helpers
* add deal ticket component, add intent utils, expand dialog and form group styles
* add splash component, show market not found message if market doesnt exist
* tidy up error handling
* add handleError method for vega tx hook
* add better testname for provider test, flesh out tests a bit more for deal ticket
* Add unit tests for useVegaTransaction and useOrderSubmit hooks
* add wrapper component for order dialog styles
* add vega styled loader to ui toolkit and use in order dialog
* add title prop to order dialog
* split limit and market tickets into own files
* add button radio component
* revert dialog styles
* move splash component to ui-toolkit, add story
* convert intent to enum
* Make button always type=button unless type prop is passed
* inline filter logic for tif selector
* add date-fns, add datetime to helpers
* add order types to wallet package, make price undefined if order type is market
* use enums in deal ticket logic
* tidy up order state by moving submit and transaction hooks out of deal ticket
* add comment for dialog styles
* remove decimal from price input
* add types package, delete old generated types from trading project
* rename types package to graphql
* update generate command to point to correct locations
* fix use order submit test
* use intent shadow helper
* remove date-fns and format manually, update submit button error to use input-error
* remove stray console.log
2022-03-17 19:35:46 +00:00
< / S t o r y W r a p p e r >
2022-03-03 14:48:40 +00:00
< / d i v >
2022-08-10 12:24:51 +00:00
< / >
) : (
2022-12-21 02:55:35 +00:00
< StoryWrapper fill = { true } >
< Story / >
< / S t o r y W r a p p e r >
2022-08-10 12:24:51 +00:00
) ;
} ;
2022-12-21 02:55:35 +00:00
export const decorators = [ ThemeWrapper ] ;