Skip to content
Open
2 changes: 0 additions & 2 deletions platforms/pictique/src/lib/ui/Avatar/Avatar.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,6 @@
hasError = true;
img = '/images/user.png';
}

$inspect(img);
</script>

{#if hasError || !img}
Expand Down
18 changes: 15 additions & 3 deletions platforms/pictique/src/routes/(protected)/home/+page.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,9 @@
let isDrawerOpen = $state(false);
const sentinel = (node: HTMLElement) => {
// The sentinel is a direct child of the scrollable ul
const scrollContainer = node.parentElement;
Comment on lines 33 to +35
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

# First, let's examine the file at the specified lines to verify the scroll container logic
cat -n platforms/pictique/src/routes/\(protected\)/home/+page.svelte | sed -n '30,60p'

Repository: MetaState-Prototype-Project/prototype

Length of output: 1058


🏁 Script executed:

# Search for IntersectionObserver patterns across the codebase
fd -e svelte -e ts -e js | xargs rg -n 'IntersectionObserver|console\.log' --type-list | head -50

Repository: MetaState-Prototype-Project/prototype

Length of output: 470


🏁 Script executed:

# More targeted search for console.log in the specific file
rg -n 'console\.log' platforms/pictique/src/routes/\(protected\)/home/+page.svelte

Repository: MetaState-Prototype-Project/prototype

Length of output: 212


🏁 Script executed:

# Search for other IntersectionObserver usages in the codebase
rg -n 'IntersectionObserver' --type svelte --type ts --type js

Repository: MetaState-Prototype-Project/prototype

Length of output: 111


🏁 Script executed:

# Search for other IntersectionObserver usages without specifying file type
rg -n 'IntersectionObserver'

Repository: MetaState-Prototype-Project/prototype

Length of output: 188


Scroll container detection is correct, but remove the debug log.

Using the sentinel's parent element as the IntersectionObserver root with a 200px rootMargin should fix mobile infinite scrolling. However, the console.log at line 46 needs to be removed per past feedback about unnecessary logging.

Remove the console.log('Triggering loadMoreFeed'); statement at line 46.

Also verify that infinite scrolling works correctly on actual mobile devices (not just DevTools mobile view) and various browsers.

🤖 Prompt for AI Agents
In @platforms/pictique/src/routes/(protected)/home/+page.svelte around lines 33
- 35, The sentinel function uses node.parentElement as the scroll container
which is correct; remove the debug log by deleting the console.log('Triggering
loadMoreFeed'); call inside the IntersectionObserver callback (refer to the
sentinel function and its observer callback) and keep the observer root set to
the detected scrollContainer with the 200px rootMargin; after removing the log,
test infinite scrolling on real mobile devices and across multiple browsers to
confirm the behavior (not just DevTools mobile emulation).

const observer = new IntersectionObserver(
(entries) => {
for (const entry of entries) {
Expand All @@ -40,12 +43,16 @@
const loadingMore = get(isLoadingMore);
if (hasMorePosts && !loading && !loadingMore) {
console.log('Triggering loadMoreFeed');
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Remove the debug console.log.

This console.log statement should be removed before merging.

🧹 Proposed fix
 						if (hasMorePosts && !loading && !loadingMore) {
-							console.log('Triggering loadMoreFeed');
 							loadMoreFeed();
 						}
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
console.log('Triggering loadMoreFeed');
if (hasMorePosts && !loading && !loadingMore) {
loadMoreFeed();
}
🤖 Prompt for AI Agents
In @platforms/pictique/src/routes/(protected)/home/+page.svelte at line 46,
Remove the debug console.log call that prints 'Triggering loadMoreFeed' from the
+page.svelte code (delete the line containing console.log('Triggering
loadMoreFeed');), ensuring no leftover debug logging remains in the
loadMoreFeed/event handler block so production code has no stray console output.

loadMoreFeed();
}
}
}
},
{ rootMargin: '200px' }
{
root: scrollContainer as HTMLElement,
rootMargin: '200px'
}
);
observer.observe(node);
Expand Down Expand Up @@ -115,7 +122,7 @@
</script>

<MainPanel>
<ul class="hide-scrollbar h-screen overflow-auto md:h-dvh">
<ul class="hide-scrollbar h-screen overflow-auto pb-24 md:h-dvh md:pb-0">
{#if $isLoading && $posts.length === 0}
<li class="my-4 text-center">Loading posts...</li>
{:else if $error}
Expand Down Expand Up @@ -222,7 +229,12 @@
</li>
{/each}
{#if $isLoadingMore}
<li class="my-4 text-center">Loading more posts...</li>
<li class="my-8 flex flex-col items-center justify-center py-8">
<div
class="mb-3 h-8 w-8 animate-spin rounded-full border-2 border-t-transparent"
></div>
<p class="text-base font-medium text-gray-700">Loading more posts...</p>
</li>
{/if}
{#if !$hasMore && $posts.length > 0 && !$isLoadingMore}
<li class="my-4 text-center text-gray-500">No more posts to load</li>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,10 @@

// Trim system message prefix from preview text
let previewText = c.latestMessage?.text ?? 'No message yet';
if (typeof previewText === 'string' && previewText.startsWith('$$system-message$$')) {
if (
typeof previewText === 'string' &&
previewText.startsWith('$$system-message$$')
) {
previewText = previewText.replace('$$system-message$$', '').trim();
}

Expand Down