- {{
- more
- }}
+ {{ more }}
();
const { t, locale } = useI18nTyped();
const shown = computed(() => props.rail.requests.slice(0, RAIL_CAP));
-const listed = computed(
- () => !props.skeleton && props.rail.status === "ready" && shown.value.length > 0,
-);
+const settled = computed(() => !props.skeleton && props.rail.status === "ready");
+const listed = computed(() => settled.value && shown.value.length > 0);
+// The server total, not this page's length, decides whether more exist: decided suggestions can empty a page.
+const beyond = computed(() => settled.value && props.rail.total > shown.value.length);
+const hidden = computed(() => beyond.value && !listed.value);
const notice = computed(() =>
props.rail.status === "error" && props.rail.failure
? liveNotice(t, "suggestions", props.rail.failure)
diff --git a/web/src/locales/languages/en-US.json b/web/src/locales/languages/en-US.json
index 334a47ecfb..9386f31414 100644
--- a/web/src/locales/languages/en-US.json
+++ b/web/src/locales/languages/en-US.json
@@ -27367,7 +27367,9 @@
"failedTitle": "Couldn't load suggestions",
"failedDesc": "Something went wrong while loading them. Try again in a moment.",
"emptyTitle": "No suggestions right now",
- "emptyDesc": "I'll add one here when I find a gap in what your monitors cover."
+ "emptyDesc": "I'll add one here when I find a gap in what your monitors cover.",
+ "pageEmptyTitle": "The top suggestions were already handled",
+ "pageEmptyDesc": "Open the full list for the ones still waiting."
}
},
"time": {