Skip to content

Commit

Permalink
feat(us-3078): retour pr
Browse files Browse the repository at this point in the history
  • Loading branch information
Anhara01 committed Dec 11, 2024
1 parent 363b67a commit e537d86
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 24 deletions.
47 changes: 28 additions & 19 deletions components/jeune/TableauBeneficiaires.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -39,36 +39,39 @@ function TableauBeneficiaires(
const DEBUT_PERIODE = DateTime.now().startOf('week')
const FIN_PERIODE = DateTime.now().endOf('week')
const [triDerniereActiviter, setTriDerniereActiviter] = useState(true)
const [filtreBeneficiaires, setFiltreBeneficiaires] =
const [beneficiairesTrier, setBeneficiairesTrier] =
useState(beneficiairesFiltres)

const trierParDerniereActivite = () => {
const nouvelleTri = !triDerniereActiviter
const triBeneficiaires = [...beneficiairesFiltres].sort((a, b) => {
const trierParDerniereActivite = (
beneficiaire: BeneficiaireAvecInfosComplementaires[],
ordre: boolean
): BeneficiaireAvecInfosComplementaires[] => {
return [...beneficiairesTrier].sort((a, b) => {
if (!a.isActivated && !b.isActivated) return 0
if (!a.isActivated) return 1
if (!b.isActivated) return -1

const dateA = DateTime.fromISO(a.lastActivity!)
const dateB = DateTime.fromISO(b.lastActivity!)
return nouvelleTri
return ordre
? dateB.diff(dateA).milliseconds
: dateA.diff(dateB).milliseconds
})

setFiltreBeneficiaires(triBeneficiaires)
setPage(1)
setTriDerniereActiviter(nouvelleTri)
}

useEffect(() => {
setFiltreBeneficiaires(beneficiairesFiltres)
setPage(1)
}, [beneficiairesFiltres])

useEffect(() => {
setBeneficiairesTrier(
trierParDerniereActivite(beneficiairesFiltres, triDerniereActiviter)
)
}, [beneficiairesFiltres, triDerniereActiviter])

return (
<>
{filtreBeneficiaires.length === 0 && (
{beneficiairesTrier.length === 0 && (
<EmptyState
shouldFocus={true}
illustrationName={IllustrationName.People}
Expand All @@ -77,22 +80,28 @@ function TableauBeneficiaires(
/>
)}

{filtreBeneficiaires.length > 0 && (
{beneficiairesTrier.length > 0 && (
<>
<h2 className='text-m-bold mb-2 text-center text-grey_800'>
Semaine du {toShortDate(DEBUT_PERIODE)} au{' '}
{toShortDate(FIN_PERIODE)}
</h2>

<button
onClick={trierParDerniereActivite}
onClick={() => {
setTriDerniereActiviter(!triDerniereActiviter)
}}
className='flex float-right mt-8 mb-8 text-m-regular text-right text-grey_800'
title={
triDerniereActiviter
? 'Trier par dernière activité ordre anticronologique'
: 'Trier par dernière activité ordre cronologique'
? 'Trier par dernière activité ordre antichronologique'
: 'Trier par dernière activité ordre chronologique'
}
aria-label={
triDerniereActiviter
? 'Trier par dernière activité ordre antichronologique'
: 'Trier par dernière activité ordre chronologique'
}
aria-label='Trier par dernière activité'
type='button'
>
Trier par dernière activité
Expand All @@ -103,21 +112,21 @@ function TableauBeneficiaires(
ref={ref}
caption={{
text: 'Liste des bénéficiaires',
count: total === filtreBeneficiaires.length ? total : undefined,
count: total === beneficiairesTrier.length ? total : undefined,
visible: true,
}}
>
{estMilo(conseiller) && (
<TableauBeneficiairesMilo
beneficiairesFiltres={filtreBeneficiaires}
beneficiairesFiltres={beneficiairesTrier}
page={page}
total={total}
/>
)}

{!estMilo(conseiller) && (
<TableauBeneficiairesPasMilo
beneficiairesFiltres={filtreBeneficiaires}
beneficiairesFiltres={beneficiairesTrier}
page={page}
total={total}
/>
Expand Down
11 changes: 6 additions & 5 deletions tests/pages/PortefeuillePage.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -255,23 +255,24 @@ describe('PortefeuillePage client side', () => {
screen.getByText(`Semaine du ${DEBUT_PERIODE} au ${FIN_PERIODE}`)
).toBeInTheDocument()
})
it('parmet de trier bénéficiaire par dernière activité ', () => {
//given
it('parmet de trier bénéficiaire par dernière activité ', async () => {
//when
const button = screen.getByRole('button', {
name: /Trier par dernière activité/i,
})

//then

expect(button).toHaveAttribute(
'title',
'Trier par dernière activité ordre anticronologique'
'Trier par dernière activité ordre antichronologique'
)
fireEvent.click(button)

await userEvent.click(button)

expect(button).toHaveAttribute(
'title',
'Trier par dernière activité ordre cronologique'
'Trier par dernière activité ordre chronologique'
)
})

Expand Down

0 comments on commit e537d86

Please sign in to comment.