on main help sign in
finally fix that weird bug
f308431John Hyde
ui/src/lib/apps.ts+3−1
@@ -23,11 +23,13 @@ export function getApp(ship: string, desk: string): Promise<any> {
23export async function getAppByPath(path: string, retry: number = 2): Promise<any> {
23export async function getAppByPath(path: string, retry: number = 2): Promise<any> {
24 try {
24 try {
25 return await api.scry<any>({ app: 'treaty', path: `/treaty/${path}` });
25 return await api.scry<any>({ app: 'treaty', path: `/treaty/${path}` });
26− } catch {
26+ } catch (e) {
27 if (retry > 0) {
27 if (retry > 0) {
28 console.log(`Got error when fetching app: ${path}.\nTrying at most ${retry} more time(s)`);
28 console.log(`Got error when fetching app: ${path}.\nTrying at most ${retry} more time(s)`);
29 await sleep(750);
29 await sleep(750);
30 return getAppByPath(path, retry - 1);
30 return getAppByPath(path, retry - 1);
31+ } else {
32+ throw e;
31 }
33 }
32 }
34 }
33}
35}
ui/src/routes/Home.svelte+30−22
@@ -34,11 +34,40 @@
34 urlSearchMode = getUrlSearchMode(searchParams);
34 urlSearchMode = getUrlSearchMode(searchParams);
35 urlChangedSinceShipQuery = true;
35 urlChangedSinceShipQuery = true;
36 navigating = false;
36 navigating = false;
37+ console.log('url changed most recently!');
37 }
38 }
38 }
39 }
39 $: {
40 $: {
40 urlChangedSinceShipQuery = (search || true) && searchMode && false;
41 urlChangedSinceShipQuery = (search || true) && searchMode && false;
41 }
42 }
43+ function autoNav() {
44+ console.log('judgement day, mfers!');
45+ if ((search !== urlSearch || searchMode !== urlSearchMode)) {
46+ if (urlChangedSinceShipQuery) {
47+ search = urlSearch;
48+ searchMode = urlSearchMode;
49+ console.log('url wins!');
50+ } else {
51+ console.log('search wins!');
52+ navigating = true;
53+ // create a temp one because the real one doesn't always update in time!
54+ let tempAnalysis = new SearchAnalysis(search);
55+ if (params.mode === 'chart') {
56+ navToChart(tempAnalysis.patpIsValid);
57+ } else {
58+ if (tempAnalysis.patpIsValid) {
59+ console.log('going to ship view!', search, tempAnalysis.patp);
60+ navToShipView(tempAnalysis.patp, true);
61+ } else {
62+ const fromShipMode = params.mode === 'ship';
63+ console.log('going to search view!');
64+ navToSearch(fromShipMode);
65+ }
66+ }
67+ }
68+ }
69+ }
70+ $: urlSearch, urlSearchMode, search, searchMode, autoNav();
42 function nav(path, addToHistory = false) {
71 function nav(path, addToHistory = false) {
43 (addToHistory ? push : replace)(path);
72 (addToHistory ? push : replace)(path);
44 }
73 }
@@ -51,7 +80,7 @@
51 nav('/' + buildQuerystring({ mode: searchMode }), addToHistory);
80 nav('/' + buildQuerystring({ mode: searchMode }), addToHistory);
52 }
81 }
53 }
82 }
54− function navToShipView(addToHistory = false) {
83+ function navToShipView(patp, addToHistory = false) {
55 params.mode = 'ship';
84 params.mode = 'ship';
56 params.arg = patp;
85 params.arg = patp;
57 if (patp === search) {
86 if (patp === search) {
@@ -87,27 +116,6 @@
87 navHome(addToHistory);
116 navHome(addToHistory);
88 }
117 }
89 }
118 }
90− function autoNav() {
91− if ((search !== urlSearch || searchMode !== urlSearchMode)) {
92− if (urlChangedSinceShipQuery) {
93− search = urlSearch;
94− searchMode = urlSearchMode;
95− } else {
96− navigating = true;
97− if (params.mode === 'chart') {
98− navToChart(analysis.patpIsValid);
99− } else {
100− if (patp) {
101− navToShipView(true);
102− } else {
103− const fromShipMode = params.mode === 'ship';
104− navToSearch(fromShipMode);
105− }
106− }
107− }
108− }
109− }
110− $: urlSearch, urlSearchMode, search, searchMode, autoNav();
111 $: {
119 $: {
112 let properMode = params.mode;
120 let properMode = params.mode;
113 if (properMode === 'chart') {
121 if (properMode === 'chart') {