Skip to content

Commit

Permalink
Add filter and clear button
Browse files Browse the repository at this point in the history
  • Loading branch information
GerroDen committed Nov 13, 2024
1 parent 0bfd7f3 commit 444994c
Showing 1 changed file with 24 additions and 2 deletions.
26 changes: 24 additions & 2 deletions src/panel/Devtools.vue
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<script setup lang="ts">
import { get } from "lodash-es";
import { onMounted, onUnmounted, type Ref, ref, watch } from "vue";
import { computed, onMounted, onUnmounted, type Ref, ref, watch } from "vue";
type Request = chrome.devtools.network.Request;
Expand All @@ -15,6 +15,7 @@ interface Entry {
const requests = ref<Entry[]>([]) as Ref<Entry[]>;
const selectedEntry = ref<Entry>() as Ref<Entry>;
const filterInput = ref<string>();
const selectedResponse = ref<unknown>();
const addRequest = (request: Request) => {
Expand All @@ -41,6 +42,17 @@ watch(selectedEntry, () => {
});
});
const filteredRequests = computed(() => {
const searchTerm = filterInput.value;
if (!searchTerm) {
return requests.value;
}
return requests.value.filter((request) => {
const filterFields = [request.functionKey, request.environmentType, request.environmentId, request.extensionType];
return filterFields.some((value) => value.toLowerCase().includes(searchTerm.toLowerCase()));
});
});
onMounted(() => {
chrome.devtools.network.onRequestFinished.addListener(addRequest);
});
Expand All @@ -51,6 +63,14 @@ onUnmounted(() => {
</script>

<template>
<div class="search-drawer-header">
<button class="toolbar-button" @click="requests.splice(0)">Clear</button>
<div class="search-toolbar">
<div class="toolbar-item-search">
<input v-model.trim="filterInput" class="search-toolbar-input" type="text" placeholder="Filter" />
</div>
</div>
</div>
<div class="shadow-split-widget">
<div class="shadow-split-widget-contents shadow-split-widget-main vbox">
<div class="wrapping-container striped">
Expand All @@ -64,7 +84,7 @@ onUnmounted(() => {
</tr>
</thead>
<tbody>
<tr v-for="request in requests" :class="{ selected: request === selectedEntry }" @click="selectedEntry = request">
<tr v-for="request in filteredRequests" :class="{ selected: request === selectedEntry }" @click="selectedEntry = request">
<td :title="request.functionKey">{{ request.functionKey }}</td>
<td :title="request.environmentType">{{ request.environmentType }}</td>
<td :title="request.environmentId">{{ request.environmentId }}</td>
Expand All @@ -91,7 +111,9 @@ onUnmounted(() => {

<style scoped>
@import "chrome-devtools-frontend/front_end/ui/components/data_grid/dataGrid.css";
@import "chrome-devtools-frontend/front_end/ui/components/input/textInput.css";
@import "chrome-devtools-frontend/front_end/ui/legacy/splitWidget.css";
@import "chrome-devtools-frontend/front_end/panels/search/searchView.css";
table {
height: auto;
Expand Down

0 comments on commit 444994c

Please sign in to comment.