collection filter styling #4

closed
opened by futur.blue targeting main from futur.blue/pdsls: filter-styling
Changed files
+7 -5
src
components
views
+3 -1
src/components/button.tsx
···
export interface ButtonProps {
class?: string;
+
classList?: Record<string, boolean | undefined>;
onClick?: JSX.EventHandlerUnion<HTMLButtonElement, MouseEvent>;
children?: JSX.Element;
}
···
type="button"
class={
props.class ??
-
"dark:hover:bg-dark-100 dark:bg-dark-300 dark:shadow-dark-800 dark:active:bg-dark-100 flex items-center gap-1 rounded-lg bg-white px-2 py-1.5 text-xs font-semibold shadow-sm hover:bg-neutral-50 active:bg-neutral-50"
+
"dark:hover:bg-dark-100 dark:bg-dark-300 dark:shadow-dark-800 dark:active:bg-dark-100 flex items-center gap-1 rounded-lg bg-white px-2 py-1.5 text-xs font-semibold border-[0.5px] border-neutral-300 dark:border-neutral-700 shadow-md hover:bg-neutral-50 active:bg-neutral-50"
}
+
classList={props.classList}
onClick={props.onClick}
>
{props.children}
+4 -4
src/views/collection.tsx
···
true,
);
-
const NavigationButton = (props: ButtonProps) => {
+
const FilterButton = (props: ButtonProps) => {
return <Button
class="flex items-center gap-1 rounded-lg bg-white px-2 py-1.5 text-xs font-semibold border-[0.5px] border-neutral-300 dark:border-neutral-700 shadow-md"
classList={{
···
</div>
<Show when={records.length > 1}>
<div class="flex w-[22rem] items-center justify-between gap-x-2 sm:w-[24rem]">
-
<NavigationButton
+
<FilterButton
onClick={() => {
setReverse(!reverse());
setRecords([]);
···
class={`iconify ${reverse() ? "lucide--rotate-ccw" : "lucide--rotate-cw"} text-sm`}
></span>
Reverse
-
</NavigationButton>
+
</FilterButton>
<div>
<Show when={batchDelete()}>
<span>{records.filter((rec) => rec.toDelete).length}</span>
···
<div class="flex w-[5rem] items-center justify-end">
<Show when={cursor()}>
<Show when={!response.loading}>
-
<NavigationButton onClick={() => refetch()}>Load More</NavigationButton>
+
<FilterButton onClick={() => refetch()}>Load More</FilterButton>
</Show>
<Show when={response.loading}>
<div class="iconify lucide--loader-circle w-[5rem] animate-spin text-xl" />