@@ -102,7 +111,13 @@ const selectedSorting = computed({
});
watch(() => route.fullPath, () => {
- searchQuery.value = route.query.search as string;
+ searchQuery.value = route.query.search as string ?? null;
+ itemsSorting.value = route.query.sorting as string ?? null;
+ pageSize.value = route.query.pageSize as number ?? null;
+ currentPage.value = route.query.page as number ?? null;
+ layout.value = route.query.layout as string ?? null;
+ categoryFilters.value = route.query.categoryFilters as string[] ?? null;
+ tagFilters.value = route.query.tagFilters as string[] ?? null;
});
watch([searchQuery, itemsSorting, pageSize, currentPage, layout, categoryFilters, tagFilters], () => {
@@ -123,12 +138,34 @@ watch([searchQuery, itemsSorting, pageSize, currentPage, layout, categoryFilters
onActivated(() => {
searchQuery.value = route.query.search as string ?? null;
+ itemsSorting.value = route.query.sorting as string ?? null;
+ pageSize.value = route.query.pageSize as number ?? null;
+ currentPage.value = route.query.page as number ?? null;
+ layout.value = route.query.layout as string ?? null;
+ categoryFilters.value = route.query.categoryFilters as string[] ?? null;
+ tagFilters.value = route.query.tagFilters as string[] ?? null;
});
onMounted(() => {
+ searchQuery.value = route.query.search as string ?? null;
loadTorrents();
});
+function submitSearch () {
+ navigateTo({
+ path: "/torrents",
+ query: {
+ search: searchQuery.value,
+ sorting: itemsSorting.value,
+ pageSize: pageSize.value,
+ page: 1,
+ layout: layout.value,
+ categoryFilters: categoryFilters.value,
+ tagFilters: tagFilters.value
+ }
+ });
+}
+
function loadTorrents () {
rest.value.torrent.getTorrents(
{