feat: filter details for zero values (#364)

* filter details for zero values

* ensure exhaustive checks

* update event listener to only bind when collapsable
This commit is contained in:
Hayden 2023-03-22 19:05:13 -08:00 committed by GitHub
parent 840d220d4f
commit 40e76bac0c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 95 additions and 20 deletions

View file

@ -36,3 +36,23 @@ export type Detail = BaseDetail & {
export type AnyDetail = DateDetail | CurrencyDetail | LinkDetail | MarkdownDetail | Detail;
export type Details = Array<Detail | AnyDetail>;
export function filterZeroValues(details: Details): Details {
return details.filter(detail => {
switch (detail.type) {
case "date":
return validDate(detail.text);
case "currency":
return !!detail.text;
case "link":
return !!detail.text && !!detail.href;
case undefined:
case "text":
case "markdown":
return detail.text !== null && detail.text !== "" && detail.text !== undefined;
default:
console.warn("Unknown detail type (this should never happen)", detail);
return false;
}
});
}