import React from 'react'
import {ScrollView, View} from 'react-native'
import {ViewHeader} from '../com/util/ViewHeader'
import {ThemeProvider, PaletteColorName} from 'lib/ThemeContext'
import {usePalette} from 'lib/hooks/usePalette'
import {s} from 'lib/styles'
import {displayNotification} from 'lib/notifee'
import {Text} from '../com/util/text/Text'
import {ViewSelector} from '../com/util/ViewSelector'
import {EmptyState} from '../com/util/EmptyState'
import * as LoadingPlaceholder from '../com/util/LoadingPlaceholder'
import {Button, ButtonType} from '../com/util/forms/Button'
import {DropdownButton, DropdownItem} from '../com/util/forms/DropdownButton'
import {ToggleButton} from '../com/util/forms/ToggleButton'
import {RadioGroup} from '../com/util/forms/RadioGroup'
import {ErrorScreen} from '../com/util/error/ErrorScreen'
import {ErrorMessage} from '../com/util/error/ErrorMessage'
const MAIN_VIEWS = ['Base', 'Controls', 'Error', 'Notifs']
export const Debug = () => {
const [colorScheme, setColorScheme] = React.useState<'light' | 'dark'>(
'light',
)
const onToggleColorScheme = () => {
setColorScheme(colorScheme === 'light' ? 'dark' : 'light')
}
return (
)
}
function DebugInner({
colorScheme,
onToggleColorScheme,
}: {
colorScheme: 'light' | 'dark'
onToggleColorScheme: () => void
}) {
const [currentView, setCurrentView] = React.useState(0)
const pal = usePalette('default')
const renderItem = (item: any) => {
return (
{item.currentView === 3 ? (
) : item.currentView === 2 ? (
) : item.currentView === 1 ? (
) : (
)}
)
}
const items = [{currentView}]
return (
)
}
function Heading({label}: {label: string}) {
const pal = usePalette('default')
return (
{label}
)
}
function BaseView() {
return (
)
}
function ControlsView() {
return (
)
}
function ErrorView() {
return (
{}}
/>
{}}
/>
{}}
numberOfLines={1}
/>
)
}
function NotifsView() {
const trigger = () => {
displayNotification(
'Paul Frazee liked your post',
"Hello world! This is a test of the notifications card. The text is long to see how that's handled.",
)
}
return (
)
}
function PaletteView({palette}: {palette: PaletteColorName}) {
const defaultPal = usePalette('default')
const pal = usePalette(palette)
return (
{palette} colors
Light text
Link text
{palette !== 'default' && (
Inverted text
)}
)
}
function TypographyView() {
const pal = usePalette('default')
return (
'xl-thin' lorem ipsum dolor
'xl' lorem ipsum dolor
'xl-medium' lorem ipsum dolor
'xl-bold' lorem ipsum dolor
'xl-heavy' lorem ipsum dolor
'lg-thin' lorem ipsum dolor
'lg' lorem ipsum dolor
'lg-medium' lorem ipsum dolor
'lg-bold' lorem ipsum dolor
'lg-heavy' lorem ipsum dolor
'md-thin' lorem ipsum dolor
'md' lorem ipsum dolor
'md-medium' lorem ipsum dolor
'md-bold' lorem ipsum dolor
'md-heavy' lorem ipsum dolor
'sm-thin' lorem ipsum dolor
'sm' lorem ipsum dolor
'sm-medium' lorem ipsum dolor
'sm-bold' lorem ipsum dolor
'sm-heavy' lorem ipsum dolor
'xs-thin' lorem ipsum dolor
'xs' lorem ipsum dolor
'xs-medium' lorem ipsum dolor
'xs-bold' lorem ipsum dolor
'xs-heavy' lorem ipsum dolor
'title-2xl' lorem ipsum dolor
'title-xl' lorem ipsum dolor
'title-lg' lorem ipsum dolor
'title' lorem ipsum dolor
Button
Button-lg
)
}
function EmptyStateView() {
return
}
function LoadingPlaceholderView() {
return (
<>
>
)
}
function ButtonsView() {
const defaultPal = usePalette('default')
const buttonStyles = {marginRight: 5}
return (
)
}
const DROPDOWN_ITEMS: DropdownItem[] = [
{
icon: ['far', 'paste'],
label: 'Copy post text',
onPress() {},
},
{
icon: 'share',
label: 'Share...',
onPress() {},
},
{
icon: 'circle-exclamation',
label: 'Report post',
onPress() {},
},
]
function DropdownButtonsView() {
const defaultPal = usePalette('default')
return (
Bare
)
}
function ToggleButtonsView() {
const defaultPal = usePalette('default')
const buttonStyles = s.mb5
const [isSelected, setIsSelected] = React.useState(false)
const onToggle = () => setIsSelected(!isSelected)
return (
)
}
const RADIO_BUTTON_ITEMS = [
{key: 'default-light', label: 'Default Light'},
{key: 'primary', label: 'Primary'},
{key: 'secondary', label: 'Secondary'},
{key: 'inverted', label: 'Inverted'},
{key: 'primary-outline', label: 'Primary Outline'},
{key: 'secondary-outline', label: 'Secondary Outline'},
{key: 'primary-light', label: 'Primary Light'},
{key: 'secondary-light', label: 'Secondary Light'},
]
function RadioButtonsView() {
const defaultPal = usePalette('default')
const [rgType, setRgType] = React.useState('default-light')
return (
setRgType(v as ButtonType)}
/>
)
}