diff --git a/web/src/compositions/useRouteBack.ts b/web/src/compositions/useRouteBack.ts new file mode 100644 index 000000000..6d774d695 --- /dev/null +++ b/web/src/compositions/useRouteBack.ts @@ -0,0 +1,9 @@ +import { RouteLocationRaw, useRouter } from 'vue-router'; + +export function useRouteBack(to: RouteLocationRaw) { + const router = useRouter(); + + return async () => { + await router.replace(to); + }; +} diff --git a/web/src/compositions/useRouteBackOrDefault.ts b/web/src/compositions/useRouteBackOrDefault.ts deleted file mode 100644 index 6acafa4f3..000000000 --- a/web/src/compositions/useRouteBackOrDefault.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { RouteLocationRaw, useRouter } from 'vue-router'; - -export function useRouteBackOrDefault(to: RouteLocationRaw) { - const router = useRouter(); - - return async () => { - if ((window.history.state as { back: string }).back === null) { - await router.replace(to); - return; - } - router.back(); - }; -} diff --git a/web/src/views/RepoAdd.vue b/web/src/views/RepoAdd.vue index 6eb9a65f4..809d5bef3 100644 --- a/web/src/views/RepoAdd.vue +++ b/web/src/views/RepoAdd.vue @@ -37,7 +37,7 @@ import useApiClient from '~/compositions/useApiClient'; import { useAsyncAction } from '~/compositions/useAsyncAction'; import useNotifications from '~/compositions/useNotifications'; import { useRepoSearch } from '~/compositions/useRepoSearch'; -import { useRouteBackOrDefault } from '~/compositions/useRouteBackOrDefault'; +import { useRouteBack } from '~/compositions/useRouteBack'; import { Repo } from '~/lib/api/types'; const router = useRouter(); @@ -62,5 +62,5 @@ const { doSubmit: activateRepo, isLoading: isActivatingRepo } = useAsyncAction(a await router.push({ name: 'repo', params: { repoId: _repo.id } }); }); -const goBack = useRouteBackOrDefault({ name: 'repos' }); +const goBack = useRouteBack({ name: 'repos' }); diff --git a/web/src/views/org/OrgSettings.vue b/web/src/views/org/OrgSettings.vue index b8a8c232c..90d3f61b6 100644 --- a/web/src/views/org/OrgSettings.vue +++ b/web/src/views/org/OrgSettings.vue @@ -25,7 +25,7 @@ import Tab from '~/components/layout/scaffold/Tab.vue'; import OrgSecretsTab from '~/components/org/settings/OrgSecretsTab.vue'; import { inject } from '~/compositions/useInjectProvide'; import useNotifications from '~/compositions/useNotifications'; -import { useRouteBackOrDefault } from '~/compositions/useRouteBackOrDefault'; +import { useRouteBack } from '~/compositions/useRouteBack'; const notifications = useNotifications(); const router = useRouter(); @@ -41,5 +41,5 @@ onMounted(async () => { } }); -const goBack = useRouteBackOrDefault({ name: 'repos-owner' }); +const goBack = useRouteBack({ name: 'org' }); diff --git a/web/src/views/repo/RepoSettings.vue b/web/src/views/repo/RepoSettings.vue index 9238f3ffa..bdaed99c8 100644 --- a/web/src/views/repo/RepoSettings.vue +++ b/web/src/views/repo/RepoSettings.vue @@ -49,7 +49,7 @@ import GeneralTab from '~/components/repo/settings/GeneralTab.vue'; import RegistriesTab from '~/components/repo/settings/RegistriesTab.vue'; import SecretsTab from '~/components/repo/settings/SecretsTab.vue'; import useNotifications from '~/compositions/useNotifications'; -import { useRouteBackOrDefault } from '~/compositions/useRouteBackOrDefault'; +import { useRouteBack } from '~/compositions/useRouteBack'; import { Repo, RepoPermissions } from '~/lib/api/types'; const notifications = useNotifications(); @@ -73,5 +73,5 @@ onMounted(async () => { } }); -const goBack = useRouteBackOrDefault({ name: 'repo' }); +const goBack = useRouteBack({ name: 'repo' }); diff --git a/web/src/views/repo/pipeline/PipelineWrapper.vue b/web/src/views/repo/pipeline/PipelineWrapper.vue index 45a08dfbd..bfaed74c0 100644 --- a/web/src/views/repo/pipeline/PipelineWrapper.vue +++ b/web/src/views/repo/pipeline/PipelineWrapper.vue @@ -91,7 +91,7 @@ import { useAsyncAction } from '~/compositions/useAsyncAction'; import { useFavicon } from '~/compositions/useFavicon'; import useNotifications from '~/compositions/useNotifications'; import usePipeline from '~/compositions/usePipeline'; -import { useRouteBackOrDefault } from '~/compositions/useRouteBackOrDefault'; +import { useRouteBack } from '~/compositions/useRouteBack'; import { Repo, RepoPermissions } from '~/lib/api/types'; import { usePipelineStore } from '~/store/pipelines'; @@ -196,5 +196,5 @@ const activeTab = computed({ }, }); -const goBack = useRouteBackOrDefault({ name: 'repo' }); +const goBack = useRouteBack({ name: 'repo' });