import { Skeleton, ThemeProvider, useMediaQuery } from '@mui/material'
import { useMemo } from 'react'
import { createTheme } from '../../themes/createTheme.js'
import type { WidgetConfigPartialProps } from '../../types/widget.js'
import {
AppExpandedContainer,
FlexContainer,
RelativeContainer,
} from '../AppContainer.js'
import {
SkeletonAmountContainer,
SkeletonCard,
SkeletonCardRow,
SkeletonHeaderAppBar,
SkeletonHeaderContainer,
SkeletonInputCard,
SkeletonPoweredByContainer,
SkeletonReviewButton,
SkeletonReviewButtonContainer,
SkeletonSendToWalletButton,
SkeletonWalletMenuButtonContainer,
} from './WidgetSkeleton.style.js'
const SkeletonIcon = () =>
const SkeletonWalletMenuButton = () => (
)
interface SkeletonSelectCardProps {
titleWidth?: number
placeholderWidth?: number
}
const SkeletonSelectCard = ({
titleWidth = 36,
placeholderWidth = 195,
}: SkeletonSelectCardProps) => (
)
const SkeletonYouPayCard = () => (
)
export const WidgetSkeleton = ({ config }: WidgetConfigPartialProps) => {
const appearance = config?.appearance
const hiddenUI = config?.hiddenUI || []
const requiredUI = config?.requiredUI || []
const configTheme = config?.theme
const prefersDarkMode = useMediaQuery('(prefers-color-scheme: dark)')
const appearanceMode =
!appearance || appearance === 'system'
? prefersDarkMode
? 'dark'
: 'light'
: appearance
const theme = useMemo(() => createTheme(configTheme), [configTheme])
return (
{!hiddenUI.includes('walletMenu') ? (
) : null}
{requiredUI.includes('toAddress') ? (
) : null}
{!requiredUI.includes('toAddress') ? (
) : null}
{!hiddenUI.includes('poweredBy') ? (
) : null}
)
}