From 44daba72cd5110d2d0696929554397fa1fcb01c7 Mon Sep 17 00:00:00 2001 From: Antti Sonkeri Date: Sun, 28 Jul 2024 14:28:03 +0300 Subject: [PATCH] Add tag filtering to collection runner --- .../src/components/RunnerResults/index.jsx | 46 ++++++++++++++++++- .../ReduxStore/slices/collections/actions.js | 5 +- .../bruno-electron/src/ipc/network/index.js | 12 ++++- 3 files changed, 58 insertions(+), 5 deletions(-) diff --git a/packages/bruno-app/src/components/RunnerResults/index.jsx b/packages/bruno-app/src/components/RunnerResults/index.jsx index cbf099e5b..d8749c425 100644 --- a/packages/bruno-app/src/components/RunnerResults/index.jsx +++ b/packages/bruno-app/src/components/RunnerResults/index.jsx @@ -9,6 +9,7 @@ import { IconRefresh, IconCircleCheck, IconCircleX, IconCircleOff, IconCheck, Ic import ResponsePane from './ResponsePane'; import StyledWrapper from './StyledWrapper'; import { areItemsLoading } from 'utils/collections'; +import TagList from 'components/RequestPane/Tags/TagList/TagList'; const getDisplayName = (fullPath, pathname, name = '') => { let relativePath = path.relative(fullPath, pathname); @@ -42,6 +43,8 @@ export default function RunnerResults({ collection }) { const dispatch = useDispatch(); const [selectedItem, setSelectedItem] = useState(null); const [delay, setDelay] = useState(null); + const [tags, setTags] = useState({ include: [], exclude: [] }); + const [tagsEnabled, setTagsEnabled] = useState(false); // ref for the runner output body const runnerBodyRef = useRef(); @@ -88,11 +91,19 @@ export default function RunnerResults({ collection }) { .filter(Boolean); const runCollection = () => { - dispatch(runCollectionFolder(collection.uid, null, true, Number(delay))); + dispatch(runCollectionFolder(collection.uid, null, true, Number(delay), tagsEnabled && tags)); }; const runAgain = () => { - dispatch(runCollectionFolder(collection.uid, runnerInfo.folderUid, runnerInfo.isRecursive, Number(delay))); + dispatch( + runCollectionFolder( + collection.uid, + runnerInfo.folderUid, + runnerInfo.isRecursive, + Number(delay), + tagsEnabled && tags + ) + ); }; const resetRunner = () => { @@ -140,6 +151,37 @@ export default function RunnerResults({ collection }) { onChange={(e) => setDelay(e.target.value)} /> +
+
+ + setTagsEnabled(!tagsEnabled)} + /> +
+ {tagsEnabled && ( +
+
+ Included tags: + setTags({ ...tags, include: [...tags.include, tag] })} + onTagRemove={(tag) => setTags({ ...tags, include: tags.include.filter((t) => t !== tag) })} + /> +
+
+ Excluded tags: + setTags({ ...tags, exclude: [...tags.exclude, tag] })} + onTagRemove={(tag) => setTags({ ...tags, exclude: tags.exclude.filter((t) => t !== tag) })} + /> +
+
+ )} +