Minor UI Tweaks

This commit is contained in:
Sacha Weatherstone
2022-02-19 23:21:00 +11:00
parent baae898189
commit 9f7561dac0
4 changed files with 15 additions and 38 deletions
@@ -6,14 +6,12 @@ import { FiArrowUp } from 'react-icons/fi';
export interface CollapsibleSectionProps {
title: string;
icon?: JSX.Element;
actions?: JSX.Element;
children: JSX.Element;
}
export const CollapsibleSection = ({
title,
icon,
actions,
children,
}: CollapsibleSectionProps): JSX.Element => {
const [open, setOpen] = React.useState(false);
@@ -22,14 +20,14 @@ export const CollapsibleSection = ({
<m.div>
<m.div
layout
className="w-full cursor-pointer select-none overflow-hidden dark:bg-secondaryDark dark:text-gray-400"
className="w-full cursor-pointer select-none overflow-hidden border-b border-gray-300 p-2 text-sm font-medium dark:border-primaryDark dark:bg-secondaryDark dark:text-gray-400"
>
<m.div
layout
onClick={toggleOpen}
whileHover={{ scale: 1.01 }}
whileTap={{ scale: 0.99 }}
className="flex justify-between gap-2 border-b border-gray-300 p-2 text-sm font-medium dark:border-primaryDark"
className="flex justify-between gap-2 "
>
<m.div className="flex gap-2 ">
<m.div className="my-auto">{icon}</m.div>
@@ -42,6 +40,7 @@ export const CollapsibleSection = ({
open: { rotate: 0 },
closed: { rotate: 180 },
}}
transition={{ type: 'just' }}
className="my-auto"
>
<FiArrowUp />
@@ -50,22 +49,15 @@ export const CollapsibleSection = ({
</m.div>
<AnimatePresence>
{open && (
<>
{actions && (
<m.div className="flex justify-end gap-1 rounded-b-md border-x border-b p-1 dark:border-gray-600">
{actions}
</m.div>
)}
<m.div
className="p-2"
layout
initial={{ opacity: 0 }}
animate={{ opacity: 1 }}
exit={{ opacity: 0 }}
>
{children}
</m.div>
</>
<m.div
className="p-2"
layout
initial={{ opacity: 0 }}
animate={{ opacity: 1 }}
exit={{ opacity: 0 }}
>
{children}
</m.div>
)}
</AnimatePresence>
</m.div>