From b51e53aa6652a53493f90b3a36037d24d0c3f59d Mon Sep 17 00:00:00 2001 From: brage-andreas Date: Fri, 13 Sep 2024 13:54:09 +0200 Subject: [PATCH] feat: sort rulesets by `rule-set#valid_from_date` --- .../components/Settings/Penalties/Rules.tsx | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/profile/components/Settings/Penalties/Rules.tsx b/src/profile/components/Settings/Penalties/Rules.tsx index 0266b7cf..26b3b137 100644 --- a/src/profile/components/Settings/Penalties/Rules.tsx +++ b/src/profile/components/Settings/Penalties/Rules.tsx @@ -12,6 +12,16 @@ interface IProps { rules: IMarkRule[]; } +const inFuture = (date: string) => new Date(date) > new Date(); + +const getLatestRuleSet = (rules: IMarkRule[]): IMarkRule => { + return rules.reduce( + (latest, rule) => + !inFuture(rule.valid_from_date) && rule.valid_from_date > latest.valid_from_date ? rule : latest, + rules[0] + ); +}; + export const Info = ({ rules }: IProps) => { const rulesId = 'rules'; @@ -20,9 +30,9 @@ export const Info = ({ rules }: IProps) => { const [collapsed, toggleCollapse] = useCollapse(hash !== rulesId); - const ruleset = rules.length - ? rules[0].content - : 'Det er ingen prikkeregler enda. Kontakt styret for mer informasjon.'; + const { content: ruleset } = rules.length + ? getLatestRuleSet(rules) + : { content: 'Det er ingen prikkeregler enda. Kontakt styret for mer informasjon.' }; return ( <>