Skip to content

Commit fc912f2

Browse files
axel7083danivilla9
authored andcommitted
refactor: replace router goto containers by handle navigation (podman-desktop#10032)
* refactor: replace router goto containers by handle navigation Signed-off-by: axel7083 <[email protected]> * fix: tests Signed-off-by: axel7083 <[email protected]> * fix: removing bind Signed-off-by: axel7083 <[email protected]> * fix: removing bind Signed-off-by: axel7083 <[email protected]> --------- Signed-off-by: axel7083 <[email protected]>
1 parent 263ee74 commit fc912f2

12 files changed

+64
-15
lines changed

packages/api/src/navigation-page.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ export enum NavigationPage {
2424
CONTAINER_LOGS = 'container-logs',
2525
CONTAINER_INSPECT = 'container-inspect',
2626
CONTAINER_TERMINAL = 'container-terminal',
27+
CONTAINER_TTY = 'container-tty',
2728
CONTAINER_KUBE = 'container-kube',
2829
IMAGES = 'images',
2930
IMAGE_BUILD = 'image-build',

packages/api/src/navigation-request.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ export interface NavigationParameters {
2525
[NavigationPage.CONTAINER]: { id: string };
2626
[NavigationPage.CONTAINER_EXPORT]: { id: string };
2727
[NavigationPage.CONTAINER_LOGS]: { id: string };
28+
[NavigationPage.CONTAINER_TTY]: { id: string };
2829
[NavigationPage.CONTAINER_INSPECT]: { id: string };
2930
[NavigationPage.CONTAINER_TERMINAL]: { id: string };
3031
[NavigationPage.CONTAINER_KUBE]: { id: string };

packages/renderer/src/lib/compose/ComposeDetailsSummary.svelte

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
<script lang="ts">
22
import { Link } from '@podman-desktop/ui-svelte';
3-
import { router } from 'tinro';
3+
4+
import { handleNavigation } from '/@/navigation';
5+
import { NavigationPage } from '/@api/navigation-page';
46
57
import DetailsCell from '../details/DetailsCell.svelte';
68
import DetailsTable from '../details/DetailsTable.svelte';
@@ -10,7 +12,12 @@ import type { ComposeInfoUI } from './ComposeInfoUI';
1012
export let compose: ComposeInfoUI;
1113
1214
function openContainer(containerID: string) {
13-
router.goto(`/containers/${containerID}/logs`);
15+
handleNavigation({
16+
page: NavigationPage.CONTAINER_LOGS,
17+
parameters: {
18+
id: containerID,
19+
},
20+
});
1421
}
1522
</script>
1623

packages/renderer/src/lib/container/ContainerColumnNameContainer.svelte

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,18 @@
11
<script lang="ts">
2-
import { router } from 'tinro';
2+
import { handleNavigation } from '/@/navigation';
3+
import { NavigationPage } from '/@api/navigation-page';
34
45
import type { ContainerInfoUI } from './ContainerInfoUI';
56
67
export let object: ContainerInfoUI;
78
89
function openContainerDetails(container: ContainerInfoUI): void {
9-
router.goto(`/containers/${container.id}/`);
10+
handleNavigation({
11+
page: NavigationPage.CONTAINER,
12+
parameters: {
13+
id: container.id,
14+
},
15+
});
1016
}
1117
</script>
1218

packages/renderer/src/lib/container/ContainerExport.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ test('Expect export function called when export button is clicked', async () =>
100100
id: container.Id,
101101
outputTarget: '/tmp/my/path',
102102
});
103-
expect(goToMock).toBeCalledWith('/containers/');
103+
expect(goToMock).toBeCalledWith('/containers');
104104
});
105105

106106
test('Expect error shown if export function fails', async () => {

packages/renderer/src/lib/container/ContainerExport.svelte

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
import { faDownload } from '@fortawesome/free-solid-svg-icons';
33
import { Button, ErrorMessage, Input } from '@podman-desktop/ui-svelte';
44
import { onMount } from 'svelte';
5-
import { router } from 'tinro';
65
76
import { ContainerUtils } from '/@/lib/container/container-utils';
87
import { handleNavigation } from '/@/navigation';
@@ -76,7 +75,7 @@ async function exportContainer() {
7675
outputTarget: outputUri.fsPath,
7776
});
7877
// go back to containers list
79-
router.goto('/containers/');
78+
handleNavigation({ page: NavigationPage.CONTAINERS });
8079
} catch (error) {
8180
exportedError = String(error);
8281
} finally {

packages/renderer/src/lib/image/RunImage.svelte

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,10 @@ import { onMount } from 'svelte';
66
import { router } from 'tinro';
77
88
import { array2String } from '/@/lib/string/string.js';
9+
import { handleNavigation } from '/@/navigation';
910
import type { ContainerCreateOptions, DeviceMapping, HostConfig } from '/@api/container-info';
1011
import type { ImageInspectInfo } from '/@api/image-inspect-info';
12+
import { NavigationPage } from '/@api/navigation-page';
1113
import type { NetworkInspectInfo } from '/@api/network-info';
1214
1315
import Route from '../../Route.svelte';
@@ -404,9 +406,14 @@ async function startContainer() {
404406
405407
// redirect to containers if no tty, else redirect to the container details
406408
if (Tty && OpenStdin) {
407-
router.goto(`/containers/${data.id}/tty`);
409+
handleNavigation({
410+
page: NavigationPage.CONTAINER_TTY,
411+
parameters: {
412+
id: data.id,
413+
},
414+
});
408415
} else {
409-
router.goto('/containers');
416+
handleNavigation({ page: NavigationPage.CONTAINERS });
410417
}
411418
} catch (e) {
412419
createError = String(e);

packages/renderer/src/lib/pod/PodCreateFromContainers.svelte

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ import { onDestroy, onMount } from 'svelte';
55
import type { Unsubscriber } from 'svelte/store';
66
import { router } from 'tinro';
77
8+
import { handleNavigation } from '/@/navigation';
9+
import { NavigationPage } from '/@api/navigation-page';
810
import type { ProviderContainerConnectionInfo, ProviderInfo } from '/@api/provider-info';
911
1012
import type { PodCreatePortOptions } from '../../../../main/src/plugin/dockerode/libpod-dockerode';
@@ -208,6 +210,10 @@ function getWarningText(): string {
208210
});
209211
return text;
210212
}
213+
214+
function navigateToContainers(): void {
215+
return handleNavigation({ page: NavigationPage.CONTAINERS });
216+
}
211217
</script>
212218

213219
<EngineFormPage title="Copy containers to a pod" inProgress={createInProgress}>
@@ -291,7 +297,7 @@ function getWarningText(): string {
291297

292298
<div class="w-full grid justify-items-end mt-5">
293299
<div>
294-
<Button type="link" on:click={() => router.goto('/containers')}>Close</Button>
300+
<Button type="link" on:click={navigateToContainers}>Close</Button>
295301
<Button
296302
icon={SolidPodIcon}
297303
bind:disabled={createInProgress}

packages/renderer/src/lib/pod/PodmanPodDetailsSummary.svelte

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,24 @@
11
<script lang="ts">
22
import { Link } from '@podman-desktop/ui-svelte';
3-
import { router } from 'tinro';
3+
4+
import { handleNavigation } from '/@/navigation';
5+
import { NavigationPage } from '/@api/navigation-page';
46
57
import DetailsCell from '../details/DetailsCell.svelte';
68
import DetailsSubtitle from '../details/DetailsSubtitle.svelte';
79
import DetailsTable from '../details/DetailsTable.svelte';
810
import DetailsTitle from '../details/DetailsTitle.svelte';
9-
import type { PodInfoUI } from './PodInfoUI';
11+
import type { PodInfoContainerUI, PodInfoUI } from './PodInfoUI';
1012
1113
export let pod: PodInfoUI | undefined;
1214
let creationTime: Date;
1315
if (pod) {
1416
creationTime = new Date(pod.created);
1517
}
18+
19+
function navigateToLogs(container: PodInfoContainerUI): void {
20+
return handleNavigation({ page: NavigationPage.CONTAINER_LOGS, parameters: { id: container.Id } });
21+
}
1622
</script>
1723

1824
<DetailsTable>
@@ -50,7 +56,7 @@ if (pod) {
5056
{#each pod.containers as container}
5157
<tr>
5258
<DetailsSubtitle>
53-
<Link on:click={() => router.goto(`/containers/${container.Id}/logs`)}>
59+
<Link on:click={() => navigateToLogs(container)}>
5460
{container.Names}
5561
</Link>
5662
</DetailsSubtitle>

packages/renderer/src/lib/volume/VolumeDetailsSummary.svelte

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
<script lang="ts">
22
import { Link } from '@podman-desktop/ui-svelte';
3-
import { router } from 'tinro';
3+
4+
import { handleNavigation } from '/@/navigation';
5+
import { NavigationPage } from '/@api/navigation-page';
46
57
import DetailsCell from '../details/DetailsCell.svelte';
68
import DetailsTable from '../details/DetailsTable.svelte';
@@ -11,7 +13,12 @@ export let volume: VolumeInfoUI;
1113
const createdTime: Date = new Date(volume.created);
1214
1315
function openContainer(containerID: string) {
14-
router.goto(`/containers/${containerID}/logs`);
16+
handleNavigation({
17+
page: NavigationPage.CONTAINER_LOGS,
18+
parameters: {
19+
id: containerID,
20+
},
21+
});
1522
}
1623
</script>
1724

0 commit comments

Comments
 (0)