Files
home-works/src/s2-homeworks/hw02/Affairs.tsx
Andres dcc5cf08a7 hw2
2022-06-23 23:20:18 +02:00

67 lines
2.9 KiB
TypeScript

import React, { SetStateAction, Dispatch } from 'react'
import Affair from './Affair'
import { AffairType, FilterType } from './HW2'
import s from './Affairs.module.css'
type AffairsPropsType = { // need to fix any
data: any // AffairType[]
setFilter: any // (filter: FilterType) => void
// setFilter: Dispatch<SetStateAction<FilterType>>
deleteAffairCallback: any // (id: number) => void
filter: any // FilterType
}
function Affairs(props: AffairsPropsType) {
const mappedAffairs = props.data.map((a: AffairType) => (
<Affair
key={a._id} // кеи ОБЯЗАТЕЛЬНЫ в 99% - так что лучше их писать всегда при создании компонент в мапе
affair={a}
deleteAffairCallback={props.deleteAffairCallback}
/>
))
const setAll = () => {
props.setFilter('all') // создаёт студент
} // need to fix
const setHigh = () => {
props.setFilter('high') // создаёт студент
}
const setMiddle = () => {
props.setFilter('middle') // создаёт студент
}
const setLow = () => {
props.setFilter('low') // создаёт студент
}
// const set = (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => {
// props.setFilter(e.currentTarget.value as FilterType)
// }
const cnAll = s.button + ' ' + s.all + ' ' + (props.filter === 'all' ? s.active : '')
const cnHigh = s.button + ' ' + s.high + ' ' + (props.filter === 'high' ? s.active : '')
const cnMiddle = s.button + ' ' + s.middle + ' ' + (props.filter === 'middle' ? s.active : '')
const cnLow = s.button + ' ' + s.low + ' ' + (props.filter === 'low' ? s.active : '')
// const setClass = (filter: FilterType) => {
// return s.button + (props.filter === filter ? ' ' + s.active : '')
// }
return (
<div className={s.container}>
<div className={s.buttonContainer}>
<button id={'hw2-button-all'} onClick={setAll} className={cnAll}>All</button>
<button id={'hw2-button-high'} onClick={setHigh} className={cnHigh}>High</button>
<button id={'hw2-button-middle'} onClick={setMiddle} className={cnMiddle}>Middle</button>
<button id={'hw2-button-low'} onClick={setLow} className={cnLow}>Low</button>
</div>
<div className={s.affairs}>
{mappedAffairs}
</div>
{/*<button onClick={set} className={setClass('all')} value={'all'}>All</button>*/}
{/*<button onClick={set} className={setClass('high')} value={'high'}>High</button>*/}
{/*<button onClick={set} className={setClass('middle')} value={'middle'}>Middle</button>*/}
{/*<button onClick={set} className={setClass('low')} value={'low'}>Low</button>*/}
</div>
)
}
export default Affairs