|
1 | 1 | <script setup lang="ts">
|
2 |
| - import { computed } from 'vue'; |
| 2 | +import {computed, watch} from 'vue'; |
3 | 3 | import { isAdmin, isAny } from '@/utils/roles-util';
|
4 | 4 | import { ref } from 'vue';
|
5 | 5 | import { useDialog } from '@/composables/dialog/use-dialog/useDialog';
|
6 | 6 | import { useGroups } from '@/composables/groups/use-groups/useGroups';
|
7 | 7 | import { useI18n } from 'vue-i18n';
|
8 | 8 | import { useRoles } from '@/composables/roles/use-roles/useRoles';
|
9 |
| - import { useRouter } from 'vue-router'; |
| 9 | +import {useRoute, useRouter} from 'vue-router'; |
10 | 10 | import ConfirmationDialog from '@/components/confirmation-dialog/ConfirmationDialog.vue';
|
11 | 11 | import ConsoleAlert from '@/components/console-alert/ConsoleAlert.vue';
|
12 | 12 | import GroupTopicsListing from '@/views/group-topics/group-topics-listing/GroupTopicsListing.vue';
|
13 | 13 | import LoadingSpinner from '@/components/loading-spinner/LoadingSpinner.vue';
|
14 | 14 | import TopicForm from '@/views/topic/topic-form/TopicForm.vue';
|
15 | 15 |
|
16 | 16 | const router = useRouter();
|
| 17 | + const route = useRoute(); |
17 | 18 | const params = router.currentRoute.value.params as Record<string, string>;
|
18 | 19 | const { groupId } = params;
|
19 | 20 | const { t } = useI18n();
|
20 | 21 |
|
21 | 22 | const { groups, loading, error, removeGroup } = useGroups();
|
22 | 23 |
|
23 |
| - const filter = ref<string>(); |
| 24 | + const filter = ref<string>(route.query.q as string || ''); |
24 | 25 |
|
25 | 26 | const roles = useRoles(null, null).roles;
|
26 | 27 |
|
|
75 | 76 | href: `/ui/groups/${groupId}`,
|
76 | 77 | },
|
77 | 78 | ];
|
| 79 | +
|
| 80 | + const updateQueryParams = () => { |
| 81 | + router.push({ query: { ...route.query, q: filter.value } } ); |
| 82 | + }; |
| 83 | +
|
| 84 | + watch(filter, updateQueryParams); |
78 | 85 | </script>
|
79 | 86 |
|
80 | 87 | <template>
|
|
161 | 168 | density="compact"
|
162 | 169 | v-model="filter"
|
163 | 170 | prepend-inner-icon="mdi-magnify"
|
| 171 | + type="search" |
164 | 172 | />
|
165 | 173 | </v-col>
|
166 | 174 | </v-row>
|
|
0 commit comments