refactor: Advanced Disclosure now opens when there's a search

This commit is contained in:
ogabrielluiz 2024-06-04 17:24:09 -03:00
commit 84d6de5e74
4 changed files with 27 additions and 27 deletions

View file

@ -6,7 +6,7 @@ export default function DisclosureComponent({
button: { title, Icon, buttons = [] }, button: { title, Icon, buttons = [] },
isChild = true, isChild = true,
children, children,
openDisc, defaultOpen: openDisc,
}: DisclosureComponentType): JSX.Element { }: DisclosureComponentType): JSX.Element {
return ( return (
<Disclosure as="div" defaultOpen={openDisc} key={title}> <Disclosure as="div" defaultOpen={openDisc} key={title}>

View file

@ -5,11 +5,11 @@ import { DisclosureComponentType } from "../../../../types/components";
export default function ParentDisclosureComponent({ export default function ParentDisclosureComponent({
button: { title, Icon, buttons = [] }, button: { title, Icon, buttons = [] },
children, children,
openDisc, defaultOpen,
testId, testId,
}: DisclosureComponentType): JSX.Element { }: DisclosureComponentType): JSX.Element {
return ( return (
<Disclosure as="div" defaultOpen={openDisc} key={title}> <Disclosure as="div" defaultOpen={defaultOpen} key={title}>
{({ open }) => ( {({ open }) => (
<> <>
<div> <div>
@ -30,7 +30,7 @@ export default function ParentDisclosureComponent({
<IconComponent <IconComponent
name="ChevronsUpDownIcon" name="ChevronsUpDownIcon"
className={`${ className={`${
open || openDisc ? "" : "" open || defaultOpen ? "" : ""
} h-4 w-4 text-foreground`} } h-4 w-4 text-foreground`}
/> />
</div> </div>

View file

@ -42,7 +42,7 @@ export default function ExtraSidebar(): JSX.Element {
const [search, setSearch] = useState(""); const [search, setSearch] = useState("");
function onDragStart( function onDragStart(
event: React.DragEvent<any>, event: React.DragEvent<any>,
data: { type: string; node?: APIClassType }, data: { type: string; node?: APIClassType }
): void { ): void {
//start drag event //start drag event
var crt = event.currentTarget.cloneNode(true); var crt = event.currentTarget.cloneNode(true);
@ -68,7 +68,7 @@ export default function ExtraSidebar(): JSX.Element {
let keys = Object.keys(data[d]).filter( let keys = Object.keys(data[d]).filter(
(nd) => (nd) =>
nd.toLowerCase().includes(e.toLowerCase()) || nd.toLowerCase().includes(e.toLowerCase()) ||
data[d][nd].display_name?.toLowerCase().includes(e.toLowerCase()), data[d][nd].display_name?.toLowerCase().includes(e.toLowerCase())
); );
keys.forEach((element) => { keys.forEach((element) => {
ret[d][element] = data[d][element]; ret[d][element] = data[d][element];
@ -135,7 +135,7 @@ export default function ExtraSidebar(): JSX.Element {
if (filtered.some((x) => x !== "")) { if (filtered.some((x) => x !== "")) {
let keys = Object.keys(dataClone[d]).filter((nd) => let keys = Object.keys(dataClone[d]).filter((nd) =>
filtered.includes(nd), filtered.includes(nd)
); );
Object.keys(dataClone[d]).forEach((element) => { Object.keys(dataClone[d]).forEach((element) => {
if (!keys.includes(element)) { if (!keys.includes(element)) {
@ -172,7 +172,7 @@ export default function ExtraSidebar(): JSX.Element {
if (filtered.some((x) => x !== "")) { if (filtered.some((x) => x !== "")) {
let keys = Object.keys(dataClone[d]).filter((nd) => let keys = Object.keys(dataClone[d]).filter((nd) =>
filtered.includes(nd), filtered.includes(nd)
); );
Object.keys(dataClone[d]).forEach((element) => { Object.keys(dataClone[d]).forEach((element) => {
if (!keys.includes(element)) { if (!keys.includes(element)) {
@ -201,7 +201,7 @@ export default function ExtraSidebar(): JSX.Element {
"extra-side-bar-buttons gap-[4px] text-sm font-semibold", "extra-side-bar-buttons gap-[4px] text-sm font-semibold",
!hasApiKey || !validApiKey || !hasStore !hasApiKey || !validApiKey || !hasStore
? "button-disable cursor-default text-muted-foreground" ? "button-disable cursor-default text-muted-foreground"
: "", : ""
)} )}
> >
<IconComponent <IconComponent
@ -210,14 +210,14 @@ export default function ExtraSidebar(): JSX.Element {
"-m-0.5 -ml-1 h-6 w-6", "-m-0.5 -ml-1 h-6 w-6",
!hasApiKey || !validApiKey || !hasStore !hasApiKey || !validApiKey || !hasStore
? "extra-side-bar-save-disable" ? "extra-side-bar-save-disable"
: "", : ""
)} )}
/> />
Share Share
</button> </button>
</ShareModal> </ShareModal>
), ),
[hasApiKey, validApiKey, currentFlow, hasStore], [hasApiKey, validApiKey, currentFlow, hasStore]
); );
const ExportMemo = useMemo( const ExportMemo = useMemo(
@ -228,7 +228,7 @@ export default function ExtraSidebar(): JSX.Element {
</button> </button>
</ExportModal> </ExportModal>
), ),
[], []
); );
const getIcon = useMemo(() => { const getIcon = useMemo(() => {
@ -294,7 +294,7 @@ export default function ExtraSidebar(): JSX.Element {
Object.keys(dataFilter[SBSectionName]).length > 0 ? ( Object.keys(dataFilter[SBSectionName]).length > 0 ? (
<> <>
<DisclosureComponent <DisclosureComponent
openDisc={ defaultOpen={
getFilterEdge.length !== 0 || search.length !== 0 getFilterEdge.length !== 0 || search.length !== 0
? true ? true
: false : false
@ -312,8 +312,8 @@ export default function ExtraSidebar(): JSX.Element {
.sort((a, b) => .sort((a, b) =>
sensitiveSort( sensitiveSort(
dataFilter[SBSectionName][a].display_name, dataFilter[SBSectionName][a].display_name,
dataFilter[SBSectionName][b].display_name, dataFilter[SBSectionName][b].display_name
), )
) )
.map((SBItemName: string, index) => ( .map((SBItemName: string, index) => (
<ShadTooltip <ShadTooltip
@ -357,11 +357,11 @@ export default function ExtraSidebar(): JSX.Element {
</> </>
) : ( ) : (
<div key={index}></div> <div key={index}></div>
), )
)}{" "} )}{" "}
<ParentDisclosureComponent <ParentDisclosureComponent
openDisc={false} defaultOpen={search.length !== 0}
key={"Advanced"} key={`${search.length !== 0}-Advanced`}
button={{ button={{
title: "Advanced", title: "Advanced",
Icon: nodeIconsLucide.unknown, Icon: nodeIconsLucide.unknown,
@ -376,7 +376,7 @@ export default function ExtraSidebar(): JSX.Element {
<> <>
<DisclosureComponent <DisclosureComponent
isChild={false} isChild={false}
openDisc={ defaultOpen={
getFilterEdge.length !== 0 || search.length !== 0 getFilterEdge.length !== 0 || search.length !== 0
? true ? true
: false : false
@ -394,8 +394,8 @@ export default function ExtraSidebar(): JSX.Element {
.sort((a, b) => .sort((a, b) =>
sensitiveSort( sensitiveSort(
dataFilter[SBSectionName][a].display_name, dataFilter[SBSectionName][a].display_name,
dataFilter[SBSectionName][b].display_name, dataFilter[SBSectionName][b].display_name
), )
) )
.map((SBItemName: string, index) => ( .map((SBItemName: string, index) => (
<ShadTooltip <ShadTooltip
@ -469,7 +469,7 @@ export default function ExtraSidebar(): JSX.Element {
</> </>
) : ( ) : (
<div key={index}></div> <div key={index}></div>
), )
)} )}
</ParentDisclosureComponent> </ParentDisclosureComponent>
</div> </div>

View file

@ -161,7 +161,7 @@ export type FileComponentType = {
export type DisclosureComponentType = { export type DisclosureComponentType = {
children: ReactNode; children: ReactNode;
openDisc: boolean; defaultOpen: boolean;
isChild?: boolean; isChild?: boolean;
button: { button: {
title: string; title: string;
@ -530,7 +530,7 @@ export type nodeToolbarPropsType = {
updateNodeCode?: ( updateNodeCode?: (
newNodeClass: APIClassType, newNodeClass: APIClassType,
code: string, code: string,
name: string, name: string
) => void; ) => void;
setShowState: (show: boolean | SetStateAction<boolean>) => void; setShowState: (show: boolean | SetStateAction<boolean>) => void;
isOutdated?: boolean; isOutdated?: boolean;
@ -580,7 +580,7 @@ export type chatMessagePropsType = {
updateChat: ( updateChat: (
chat: ChatMessageType, chat: ChatMessageType,
message: string, message: string,
stream_url?: string, stream_url?: string
) => void; ) => void;
}; };
@ -672,12 +672,12 @@ export type codeTabsPropsType = {
value: string, value: string,
node: NodeType, node: NodeType,
template: InputFieldType, template: InputFieldType,
tweak: tweakType, tweak: tweakType
) => string; ) => string;
buildTweakObject?: ( buildTweakObject?: (
tw: string, tw: string,
changes: string | string[] | boolean | number | Object[] | Object, changes: string | string[] | boolean | number | Object[] | Object,
template: InputFieldType, template: InputFieldType
) => Promise<string | void>; ) => Promise<string | void>;
}; };
activeTweaks?: boolean; activeTweaks?: boolean;