6500db9c1c
* move index to home folder, create state and context files and barrell folder * Sanity Check Commit: reducer added to home.tsx manual QA all working * WIP: promptBar * fix missing json parse on folders and prompts * split context and add promptbar context * add context to nested prompt componets and componetize Folder componet * remove log * Create buttons folder and componetize sidebar action button * tidy up prompt handlers * componetized sidebar * added back chatbar componet to left side sidebar * monster commit: Componetized the common code between chatbar and promptbar into new componet Sidebar and added context to both bars * add useFetch service * added prettier import sort to keep imports ordered and easier to indentify * added react query and useFetch to work with RQ * added apiService, errorService and reactQuery * add callback and tidy up error service * refactor chat and child componets to useContext * fix extra calls and bad calls to mel endpoint * minor import cleanup --------- Co-authored-by: jc.durbin <jc.durbin@ardanis.com>
43 lines
1.3 KiB
TypeScript
43 lines
1.3 KiB
TypeScript
import { IconArrowBarLeft, IconArrowBarRight } from '@tabler/icons-react';
|
|
|
|
interface Props {
|
|
onClick: any;
|
|
side: 'left' | 'right';
|
|
}
|
|
|
|
export const CloseSidebarButton = ({ onClick, side }: Props) => {
|
|
return (
|
|
<>
|
|
<button
|
|
className={`fixed top-5 ${
|
|
side === 'right' ? 'right-[270px]' : 'left-[270px]'
|
|
} z-50 h-7 w-7 hover:text-gray-400 dark:text-white dark:hover:text-gray-300 sm:top-0.5 sm:${
|
|
side === 'right' ? 'right-[270px]' : 'left-[270px]'
|
|
} sm:h-8 sm:w-8 sm:text-neutral-700`}
|
|
onClick={onClick}
|
|
>
|
|
{side === 'right' ? <IconArrowBarRight /> : <IconArrowBarLeft />}
|
|
</button>
|
|
<div
|
|
onClick={onClick}
|
|
className="absolute top-0 left-0 z-10 h-full w-full bg-black opacity-70 sm:hidden"
|
|
></div>
|
|
</>
|
|
);
|
|
};
|
|
|
|
export const OpenSidebarButton = ({ onClick, side }: Props) => {
|
|
return (
|
|
<button
|
|
className={`fixed top-2.5 ${
|
|
side === 'right' ? 'right-2' : 'left-2'
|
|
} z-50 h-7 w-7 text-white hover:text-gray-400 dark:text-white dark:hover:text-gray-300 sm:top-0.5 sm:${
|
|
side === 'right' ? 'right-2' : 'left-2'
|
|
} sm:h-8 sm:w-8 sm:text-neutral-700`}
|
|
onClick={onClick}
|
|
>
|
|
{side === 'right' ? <IconArrowBarLeft /> : <IconArrowBarRight />}
|
|
</button>
|
|
);
|
|
};
|