🌈 style(eslint): add eslint rules
This commit is contained in:
@@ -1,23 +1,24 @@
|
||||
import { ScrollView, View } from '@tarojs/components'
|
||||
import classnames from 'classnames'
|
||||
import { FC, useEffect, useState } from 'react'
|
||||
import type { FC } from 'react'
|
||||
import { useEffect, useState } from 'react'
|
||||
import styles from './index.module.scss'
|
||||
|
||||
type Segment = {
|
||||
interface Segment {
|
||||
id: number
|
||||
name: string
|
||||
}
|
||||
|
||||
type PropsType = {
|
||||
interface PropsType {
|
||||
list: Segment[]
|
||||
defaultId?: number
|
||||
onSelect?: (data: {id: number, name:string}) => void
|
||||
onSelect?: (data: { id: number; name: string }) => void
|
||||
}
|
||||
|
||||
const segmentedControl: FC<PropsType> = (props) => {
|
||||
const [selectInfo, setSelectInfo] = useState({
|
||||
selected: -1, //当前选中的id
|
||||
tabId: '', //需要滚动到的id
|
||||
selected: -1, // 当前选中的id
|
||||
tabId: '', // 需要滚动到的id
|
||||
})
|
||||
const { list, defaultId = -1, onSelect } = props
|
||||
|
||||
@@ -34,22 +35,22 @@ const segmentedControl: FC<PropsType> = (props) => {
|
||||
})
|
||||
if (index !== -1) {
|
||||
const num = index > 0 ? index - 1 : 0
|
||||
setSelectInfo((e) => ({ ...e, tabId: list[num].id.toString() }))
|
||||
setSelectInfo(e => ({ ...e, tabId: list[num].id.toString() }))
|
||||
}
|
||||
}
|
||||
setSelectInfo((e) => ({ ...e, selected: isValidNumber(defaultId) ? defaultId : -1 }))
|
||||
setSelectInfo(e => ({ ...e, selected: isValidNumber(defaultId) ? defaultId : -1 }))
|
||||
console.log('selectInfo', selectInfo)
|
||||
}, [defaultId])
|
||||
|
||||
const clickEvent = ({ item, index }: { item: any; index: number }) => {
|
||||
const num = index > 0 ? index - 1 : 0
|
||||
setSelectInfo((e) => ({ ...e, tabId: list[num].id.toString(), selected: item.id }))
|
||||
setSelectInfo(e => ({ ...e, tabId: list[num].id.toString(), selected: item.id }))
|
||||
onSelect?.(item)
|
||||
}
|
||||
|
||||
return (
|
||||
<View className={styles.status_list}>
|
||||
<ScrollView scrollX scrollIntoView={`tabs_${selectInfo.tabId}`} scrollWithAnimation={true}>
|
||||
<ScrollView scrollX scrollIntoView={`tabs_${selectInfo.tabId}`} scrollWithAnimation>
|
||||
<View className={styles.list_scroll}>
|
||||
{list.map((item, index) => {
|
||||
return (
|
||||
@@ -57,7 +58,8 @@ const segmentedControl: FC<PropsType> = (props) => {
|
||||
key={item.id}
|
||||
id={`tabs_${item.id}`}
|
||||
onClick={() => clickEvent({ item, index })}
|
||||
className={classnames(styles.status_item, selectInfo.selected === item.id ? styles.selected : '')}>
|
||||
className={classnames(styles.status_item, selectInfo.selected === item.id ? styles.selected : '')}
|
||||
>
|
||||
{item.name}
|
||||
</View>
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user