feat(SW-3238): Move modal to design system * Move Modal to design-system * Remove temp modal from booking-flow Approved-by: Joakim Jäderberg
37 lines
805 B
TypeScript
37 lines
805 B
TypeScript
import type { Dispatch, JSX, SetStateAction } from 'react'
|
|
|
|
export enum AnimationStateEnum {
|
|
unmounted = 'unmounted',
|
|
hidden = 'hidden',
|
|
visible = 'visible',
|
|
}
|
|
|
|
export type AnimationState = keyof typeof AnimationStateEnum
|
|
|
|
export type ModalProps = {
|
|
onAnimationComplete?: () => void
|
|
title?: string
|
|
subtitle?: string
|
|
withActions?: boolean
|
|
hideHeader?: boolean
|
|
className?: string
|
|
} & (
|
|
| {
|
|
trigger: JSX.Element
|
|
isOpen?: never
|
|
onToggle?: never
|
|
onOpenChange?: (open: boolean) => void
|
|
}
|
|
| {
|
|
trigger?: never
|
|
isOpen: boolean
|
|
onToggle: (open: boolean) => void
|
|
onOpenChange?: never
|
|
}
|
|
)
|
|
|
|
export type InnerModalProps = Omit<ModalProps, 'trigger'> & {
|
|
animation: AnimationState
|
|
setAnimation: Dispatch<SetStateAction<AnimationState>>
|
|
}
|