Skip to content

Commit 7a7469c

Browse files
authored
eng-1144: DiscourseContext UI disappears (#602)
* eng-1144 do not hard refresh on initial load, remove loadInBackground.
1 parent 359975c commit 7a7469c

5 files changed

Lines changed: 54 additions & 54 deletions

File tree

apps/roam/src/components/DiscourseContext.tsx

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -228,7 +228,7 @@ const ContextTab = ({
228228
r: DiscourseContextResults[number];
229229
groupByTarget: boolean;
230230
setGroupByTarget: (b: boolean) => void;
231-
onRefresh: () => void;
231+
onRefresh: (ignoreCache?: boolean) => void;
232232
}) => {
233233
const [subTabId, setSubTabId] = useState(0);
234234

@@ -343,22 +343,25 @@ export const ContextContent = ({ uid, results }: Props) => {
343343
}));
344344
}, []);
345345

346-
const onRefresh = useCallback(() => {
347-
setRawQueryResults({});
348-
getDiscourseContextResults({
349-
uid,
350-
onResult: addLabels,
351-
ignoreCache: true,
352-
}).finally(() => setLoading(false));
353-
}, [uid, setRawQueryResults, setLoading, addLabels]);
346+
const onRefresh = useCallback(
347+
(ignoreCache = true) => {
348+
setRawQueryResults({});
349+
void getDiscourseContextResults({
350+
uid,
351+
onResult: addLabels,
352+
ignoreCache,
353+
}).finally(() => setLoading(false));
354+
},
355+
[uid, setRawQueryResults, setLoading, addLabels],
356+
);
354357

355358
const delayedRefresh = () => {
356359
window.setTimeout(onRefresh, 250);
357360
};
358361

359362
useEffect(() => {
360363
if (!results) {
361-
onRefresh();
364+
onRefresh(false);
362365
} else {
363366
results.forEach(addLabels);
364367
setLoading(false);

apps/roam/src/components/QueryBuilder.tsx

Lines changed: 34 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -65,44 +65,41 @@ const QueryBuilder = ({ pageUid, isEditBlock, showAlias }: Props) => {
6565
const [columns, setColumns] = useState<Column[]>([]);
6666
const [results, setResults] = useState<Result[]>([]);
6767
const containerRef = useRef<HTMLDivElement>(null);
68-
const onRefresh = useCallback(
69-
(loadInBackground = false) => {
70-
setError("");
71-
setLoading(!loadInBackground);
72-
const args = parseQuery(pageUid);
73-
const { inputs } = parseResultSettings(pageUid, args.columns);
74-
const transformedInputs = Object.fromEntries(
75-
inputs.map(({ key, inputValue }) => [key, inputValue]),
76-
);
77-
setTimeout(() => {
78-
fireQuery({ ...args, inputs: transformedInputs })
79-
.then((results) => {
80-
setColumns(args.columns);
81-
setResults(results);
82-
})
83-
.catch(() => {
84-
setError(
85-
`Query failed to run. Try running a new query from the editor.`,
86-
);
87-
})
88-
.finally(() => {
89-
const tree = getBasicTreeByParentUid(pageUid);
90-
const node = getSubTree({ tree, key: "results" });
91-
return (
92-
node.uid
93-
? Promise.resolve(node.uid)
94-
: createBlock({
95-
parentUid: pageUid,
96-
node: { text: "results" },
97-
})
98-
).then(() => {
99-
setLoading(false);
100-
});
68+
const onRefresh = useCallback(() => {
69+
setError("");
70+
setLoading(true);
71+
const args = parseQuery(pageUid);
72+
const { inputs } = parseResultSettings(pageUid, args.columns);
73+
const transformedInputs = Object.fromEntries(
74+
inputs.map(({ key, inputValue }) => [key, inputValue]),
75+
);
76+
setTimeout(() => {
77+
fireQuery({ ...args, inputs: transformedInputs })
78+
.then((results) => {
79+
setColumns(args.columns);
80+
setResults(results);
81+
})
82+
.catch(() => {
83+
setError(
84+
`Query failed to run. Try running a new query from the editor.`,
85+
);
86+
})
87+
.finally(() => {
88+
const tree = getBasicTreeByParentUid(pageUid);
89+
const node = getSubTree({ tree, key: "results" });
90+
void (
91+
node.uid
92+
? Promise.resolve(node.uid)
93+
: createBlock({
94+
parentUid: pageUid,
95+
node: { text: "results" },
96+
})
97+
).then(() => {
98+
setLoading(false);
10199
});
102-
}, 1);
103-
},
104-
[setResults, pageUid, setLoading, setColumns],
105-
);
100+
});
101+
}, 1);
102+
}, [setResults, pageUid, setLoading, setColumns]);
106103
useEffect(() => {
107104
if (!isEdit) {
108105
if (hasResults) {

apps/roam/src/components/results-view/ResultsTable.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,7 @@ type ResultRowProps = {
191191
parentUid: string;
192192
ctrlClick?: (e: Result) => void;
193193
views: { column: string; mode: string; value: string }[];
194-
onRefresh: () => void;
194+
onRefresh: (ignoreCache?: boolean) => void;
195195
};
196196

197197
const ResultRow = ({
@@ -455,7 +455,7 @@ const ResultsTable = ({
455455
setFilters: (f: FilterData) => void;
456456
preventSavingSettings?: boolean;
457457
views: Views;
458-
onRefresh: () => void;
458+
onRefresh: (ignoreCache?: boolean) => void;
459459
allResults: Result[];
460460
showInterface?: boolean;
461461
}) => {

apps/roam/src/components/results-view/ResultsView.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ import Charts from "./Charts";
3838
import Timeline from "./Timeline";
3939
import Kanban from "./Kanban";
4040
import MenuItemSelect from "roamjs-components/components/MenuItemSelect";
41-
import { RoamBasicNode } from "roamjs-components/types";
41+
import type { RoamBasicNode } from "roamjs-components/types/native";
4242
import { render as renderToast } from "roamjs-components/components/Toast";
4343
import { Column, Result } from "~/utils/types";
4444
import updateBlock from "roamjs-components/writes/updateBlock";
@@ -239,7 +239,7 @@ type ResultsViewComponent = (props: {
239239
preventSavingSettings?: boolean;
240240
onEdit?: () => void;
241241
onDeleteQuery?: () => void;
242-
onRefresh: (loadInBackground?: boolean) => void;
242+
onRefresh: (ignoreCache?: boolean) => void;
243243
globalFiltersData?: Record<string, Filters>;
244244
globalPageSize?: number;
245245
isEditBlock?: boolean;
@@ -1386,7 +1386,7 @@ const ResultsView: ResultsViewComponent = ({
13861386
<Kanban
13871387
data={allProcessedResults}
13881388
layout={layout}
1389-
onQuery={() => onRefresh(true)}
1389+
onQuery={() => onRefresh()}
13901390
resultKeys={columns}
13911391
parentUid={parentUid}
13921392
views={views}

apps/roam/src/utils/getDiscourseContextResults.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ const CACHE_TIMEOUT = 1000 * 60 * 5;
1313

1414
type BuildQueryConfig = {
1515
args: {
16-
ignoreCache?: true;
16+
ignoreCache?: boolean;
1717
};
1818
targetUid: string;
1919
fireQueryContext: {
@@ -177,7 +177,7 @@ const getDiscourseContextResults = async ({
177177
uid: string;
178178
nodes?: ReturnType<typeof getDiscourseNodes>;
179179
relations?: ReturnType<typeof getDiscourseRelations>;
180-
ignoreCache?: true;
180+
ignoreCache?: boolean;
181181
onResult?: onResult;
182182
}) => {
183183
const args = { ignoreCache };

0 commit comments

Comments
 (0)