Skip to content

Commit b563222

Browse files
authored
Merge pull request #87 from tylerslaton/explore-page
fix: don't allow empty tool add and allow delete on explore
2 parents 355d069 + 3d917ed commit b563222

File tree

3 files changed

+23
-6
lines changed

3 files changed

+23
-6
lines changed

app/explore/page.tsx

+10-2
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ export default function Explore() {
8383
setCurrent('/explore')
8484
refresh()
8585
}, []);
86+
8687
useEffect(() => { refresh() }, [authenticated]);;
8788

8889
return (
@@ -169,7 +170,7 @@ export default function Explore() {
169170
{loading ?
170171
<Loading /> :
171172
<div className={'pb-10'}>
172-
<ScriptModal script={selectedScript} open={open} setOpen={setOpen} />
173+
<ScriptModal script={selectedScript} open={open} setOpen={setOpen} refresh={refresh} />
173174
<div className="grid gap-12 grid-cols-1 lg:grid-cols-2 2xl:grid-cols-3 4xl:grid-cols-4">
174175
{filteredScripts.map((script) => (
175176
<div
@@ -217,7 +218,14 @@ export default function Explore() {
217218
className="col-span-1 lg:col-span-2 2xl:col-span-3 4xl:col-span-4"
218219
onPress={() => {
219220
setNextLoading(true)
220-
getScripts({limit: 10, continue: next})
221+
getScripts({
222+
limit: 10,
223+
filter: (query || owner || visibility) && filter === "featured" ? '' : filter,
224+
search: query,
225+
visibility: visibility,
226+
owner: owner,
227+
continue: next
228+
})
221229
.then((resp) => {
222230
if (resp.continue) setNext(resp.continue)
223231
else setNext(undefined)

components/edit/configure/imports/toolCatalog.tsx

+1
Original file line numberDiff line numberDiff line change
@@ -487,6 +487,7 @@ const ToolCatalog: React.FC<ToolCatalogProps> = ({tools, addTool, removeTool}) =
487487
startContent={<GoPlus />}
488488
color="primary"
489489
onPress={() => {
490+
if (!url) return;
490491
if (!priorityTools["From URL"].map((t) => t.url).includes(url)) {
491492
addTool(url)
492493
priorityTools["From URL"].push({

components/explore/scriptModal.tsx

+12-4
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,31 @@
11
"use client"
22

33
import {Modal, ModalContent, ModalBody, ModalHeader, ModalFooter, Button, Link, Avatar, Divider, Accordion, AccordionItem, Chip, Tooltip, Table, TableHeader, TableColumn, TableRow, TableCell, TableBody } from "@nextui-org/react";
4-
import {ParsedScript} from "@/actions/me/scripts";
4+
import {deleteScript, ParsedScript} from "@/actions/me/scripts";
55
import { GoCode, GoPaperAirplane, GoPencil, GoTrash } from "react-icons/go";
66
import { AuthContext } from "@/contexts/auth";
7-
import { useContext, useEffect, useState } from "react";
7+
import { useCallback, useContext, useEffect, useState } from "react";
88
import {TbListDetails} from "react-icons/tb";
99
import { LiaExpandArrowsAltSolid } from "react-icons/lia";
1010

1111
interface ScriptModalProps {
1212
className?: string;
1313
script: ParsedScript;
1414
open: boolean; setOpen: React.Dispatch<React.SetStateAction<boolean>>;
15+
refresh: () => void;
1516
}
1617

17-
const ScriptModal = ({ className, script, open, setOpen }: ScriptModalProps) => {
18+
const ScriptModal = ({ className, script, open, setOpen, refresh }: ScriptModalProps) => {
1819
const {authenticated, me} = useContext(AuthContext);
1920
const [expanded, setExpanded] = useState(false);
2021

22+
const handleDelete = useCallback((script: ParsedScript) => {
23+
deleteScript(script)
24+
.then(() => refresh() )
25+
.catch((error) => console.error(error))
26+
.finally(() => setOpen(false));
27+
}, []);
28+
2129
return (
2230
<Modal
2331
id="script-modal"
@@ -97,7 +105,7 @@ const ScriptModal = ({ className, script, open, setOpen }: ScriptModalProps) =>
97105
{authenticated && me?.username === script.owner &&
98106
<>
99107
<Button as={Link} href={`/edit?file=${script.publicURL}&id=${script.id}`} color="primary" className="w-full" startContent={<GoPencil />}>Edit</Button>
100-
<Button className="w-full" color="danger" variant="bordered" startContent={<GoTrash />}>Delete</Button>
108+
<Button className="w-full" color="danger" variant="bordered" startContent={<GoTrash />} onPress={() => handleDelete(script)}>Delete</Button>
101109
</>
102110
}
103111
</ModalFooter>

0 commit comments

Comments
 (0)