diff --git a/core/router.ts b/core/router.ts index 983cfff5..60b41721 100644 --- a/core/router.ts +++ b/core/router.ts @@ -1,6 +1,6 @@ import { atom, type ReadableAtom } from 'nanostores' -import { onEnvironment } from './environment.js' +import { getEnvironment, onEnvironment } from './environment.js' import { fastCategories } from './fast.js' import { hasFeeds } from './feed.js' import { userId } from './settings.js' @@ -153,3 +153,13 @@ export function isSettingsRoute(route: Route): boolean { export function isOrganizeRoute(route: Route): boolean { return ORGANIZE.has(route.route) } + +export function removeFeedFromRoute(): void { + let page = router.get() + if (page.route === 'categories') { + getEnvironment().openRoute({ + params: {}, + route: page.route + }) + } +} diff --git a/core/test/router.test.ts b/core/test/router.test.ts index 26141ba9..684e7843 100644 --- a/core/test/router.test.ts +++ b/core/test/router.test.ts @@ -11,6 +11,7 @@ import { isOrganizeRoute, isSettingsRoute, isSlowRoute, + removeFeedFromRoute, router, testFeed, userId @@ -232,3 +233,16 @@ test('checks that category exists', async () => { route: 'fast' }) }) + +test('has helper on feed removing', async () => { + userId.set('10') + let feed = await addFeed(testFeed()) + setBaseRoute({ params: { feed }, route: 'categories' }) + + removeFeedFromRoute() + + deepStrictEqual(router.get(), { + params: {}, + route: 'categories' + }) +}) diff --git a/web/pages/feeds/categories.svelte b/web/pages/feeds/categories.svelte index 1fa661ff..64d424bd 100644 --- a/web/pages/feeds/categories.svelte +++ b/web/pages/feeds/categories.svelte @@ -11,7 +11,7 @@ organizeMessages as t } from '@slowreader/core' - import { getURL, openRoute } from '../../stores/router.js' + import { getURL } from '../../stores/router.js' import Button from '../../ui/button.svelte' import CardLink from '../../ui/card-link.svelte' import CardLinks from '../../ui/card-links.svelte' @@ -94,12 +94,7 @@
{#if feedId} - { - openRoute({ params: {}, route: 'categories' }) - }} - /> + {/if}
diff --git a/web/pages/feeds/edit.svelte b/web/pages/feeds/edit.svelte index 5c534e36..a4afd893 100644 --- a/web/pages/feeds/edit.svelte +++ b/web/pages/feeds/edit.svelte @@ -22,10 +22,10 @@ moveFilterDown, moveFilterUp, type PostsPage, + removeFeedFromRoute, sortFilters, organizeMessages as t } from '@slowreader/core' - import { createEventDispatcher } from 'svelte' import Button from '../../ui/button.svelte' import Card from '../../ui/card.svelte' @@ -41,7 +41,6 @@ let loadedPosts: PostsPage | undefined = undefined let categories = getCategories() - let dispatch = createEventDispatcher<{ delete: null }>() let categoryOptions: [string, string][] categories.subscribe(value => { @@ -99,7 +98,7 @@ secondary on:click={() => { if (confirm($t.deleteConform)) { - dispatch('delete') + removeFeedFromRoute() deleteFeed(feedId) } }}>{$t.deleteFeed}