refactor: Advanced Disclosure now opens when there's a search
This commit is contained in:
parent
f3e49cb936
commit
84d6de5e74
4 changed files with 27 additions and 27 deletions
|
|
@ -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}>
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue