Compare commits
2 Commits
3ff5d7fdc3
...
feat/setti
| Author | SHA1 | Date | |
|---|---|---|---|
| 13e86e6f83 | |||
| bfdd1be148 |
@@ -1,67 +1,11 @@
|
||||
import { View, Text } from 'react-native'
|
||||
import { View } from 'react-native'
|
||||
import { Settings } from '@my/ui'
|
||||
import type { SettingsItemProps } from '@my/ui'
|
||||
import { settings } from '@my/config'
|
||||
|
||||
export function SettingsScreen() {
|
||||
const appName = 'flexlark'
|
||||
const version = 'dev 0.0.0'
|
||||
const items: SettingsItemProps[] = [
|
||||
{
|
||||
id: 'notification',
|
||||
label: '通知',
|
||||
description: '通知内有关于通知的相关设置',
|
||||
type: 'group',
|
||||
options: {
|
||||
children: [
|
||||
{
|
||||
id: 'enableNotification',
|
||||
label: '是否通知',
|
||||
description: '开启后将收到系统通知',
|
||||
type: 'switch',
|
||||
options: {},
|
||||
},
|
||||
{
|
||||
id: 'notificationContent',
|
||||
label: '通知内容',
|
||||
description: '设置通知的内容',
|
||||
type: 'input',
|
||||
options: {},
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
{
|
||||
id: 'about',
|
||||
type: 'group',
|
||||
label: '关于',
|
||||
options: {
|
||||
children: [
|
||||
{
|
||||
id: 'about-flexlark',
|
||||
label: `关于灵动云雀`,
|
||||
description: `我们是什么?`,
|
||||
type: 'link',
|
||||
options: {
|
||||
url: 'https://flexlark.org/',
|
||||
},
|
||||
},
|
||||
{
|
||||
id: 'about-app',
|
||||
label: `关于${appName}`,
|
||||
description: `当前应用正在激烈开发中`,
|
||||
type: 'alert',
|
||||
options: {
|
||||
message: `版本号:${version}`,
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
]
|
||||
|
||||
return (
|
||||
<View>
|
||||
<Settings items={items} />
|
||||
<Settings items={settings} />
|
||||
</View>
|
||||
)
|
||||
}
|
||||
|
||||
@@ -1 +1,2 @@
|
||||
export * from './tamagui.config'
|
||||
export * from './settings'
|
||||
|
||||
48
packages/config/src/settings.ts
Normal file
48
packages/config/src/settings.ts
Normal file
@@ -0,0 +1,48 @@
|
||||
import { SettingsProps } from '@my/ui'
|
||||
|
||||
export const settings: SettingsProps['items'] = [
|
||||
{
|
||||
id: 'notification',
|
||||
label: '通知',
|
||||
description: '通知内有关于通知的相关设置',
|
||||
type: 'group',
|
||||
options: {
|
||||
children: [
|
||||
{
|
||||
id: 'enableNotification',
|
||||
label: '是否通知',
|
||||
description: '开启后将收到系统通知',
|
||||
type: 'switch',
|
||||
options: {},
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
{
|
||||
id: 'about',
|
||||
type: 'group',
|
||||
label: '关于',
|
||||
options: {
|
||||
children: [
|
||||
{
|
||||
id: 'about-flexlark',
|
||||
label: `关于灵动云雀`,
|
||||
description: `我们是什么?`,
|
||||
type: 'link',
|
||||
options: {
|
||||
url: 'https://flexlark.org/',
|
||||
},
|
||||
},
|
||||
{
|
||||
id: 'about-app',
|
||||
label: `关于灵动云雀`,
|
||||
description: `当前应用正在激烈开发中`,
|
||||
type: 'alert',
|
||||
options: {
|
||||
message: `版本号: bate v0.0.0`,
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
]
|
||||
@@ -11,7 +11,7 @@ import { SettingsGroup } from './items/SettingsGroup'
|
||||
import { SettingsLink } from './items/SettingsLink'
|
||||
|
||||
export function SettingsItem(props: SettingsItemProps) {
|
||||
const { label, description, type } = props
|
||||
const { type } = props
|
||||
const Component = settingsItemRander(type)
|
||||
return <Component {...props} />
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { ListItem, Toast, useToastController, useToastState, YStack } from '@my/ui'
|
||||
import type { SettingsAlertOption, SettingsItemProps } from '@my/ui'
|
||||
import { useCallback, useState } from 'react'
|
||||
import type { SettingsItemProps } from '@my/ui'
|
||||
import { useCallback } from 'react'
|
||||
|
||||
export interface SettingsAlertProps {
|
||||
title: string
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { ListItem, Toast, useToastController, useToastState, YStack } from '@my/ui'
|
||||
import type { SettingsAlertOption, SettingsItemProps } from '@my/ui'
|
||||
import { useCallback, useState } from 'react'
|
||||
import type { SettingsItemProps } from '@my/ui'
|
||||
import { useCallback } from 'react'
|
||||
|
||||
export interface SettingsAlertProps {
|
||||
title: string
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { Button, Input, XStack, YStack, styled, Text, View } from '@my/ui'
|
||||
import { Button, Input, XStack, YStack, styled, Text } from '@my/ui'
|
||||
import { withSettingsSheet, WithSettingsSheetProps } from './SettingsSheet'
|
||||
import { useState } from 'react'
|
||||
import { settingsStore } from '../../store'
|
||||
@@ -33,7 +33,7 @@ const Footer = styled(XStack, {
|
||||
})
|
||||
|
||||
const SettingsInputComponent = (props: WithSettingsSheetProps<'input'>) => {
|
||||
const { label, icon, description, disabled, options, onClose } = props
|
||||
const { label, description, onClose } = props
|
||||
const [value, setValue] = useState('')
|
||||
/**
|
||||
* 确认按钮事件
|
||||
|
||||
@@ -10,9 +10,7 @@ const Line = styled(Separator, {
|
||||
marginVertical: '$4',
|
||||
})
|
||||
|
||||
export const SettingsLine = (props: SettingsItemProps<'alert'>) => {
|
||||
const { label } = props
|
||||
|
||||
export const SettingsLine = (_props: SettingsItemProps<'alert'>) => {
|
||||
return (
|
||||
<>
|
||||
<Line alignSelf="stretch" />
|
||||
|
||||
@@ -8,6 +8,7 @@ export interface SettingsAlertProps {
|
||||
}
|
||||
|
||||
export const SettingsPage = (props: SettingsItemProps<'alert'>) => {
|
||||
// TODO 尚未完成开发
|
||||
const { label, icon, description, disabled, options } = props
|
||||
const toast = useToastController()
|
||||
|
||||
|
||||
@@ -1,11 +1,7 @@
|
||||
import { ListItem, Sheet } from '@my/ui'
|
||||
import type { SettingsItemProps } from '@my/ui'
|
||||
import { useState } from 'react'
|
||||
import { withSettingsSheet, WithSettingsSheetProps } from './SettingsSheet'
|
||||
|
||||
const SettingsSelectComponent = (props: WithSettingsSheetProps<'select'>) => {
|
||||
const { label, icon, description, disabled, options } = props
|
||||
|
||||
// TODO 尚未完成开发
|
||||
return <></>
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user