diff --git a/src/components/profile/PicStream.svelte b/src/components/profile/PicStream.svelte
new file mode 100644
index 0000000..81dea01
--- /dev/null
+++ b/src/components/profile/PicStream.svelte
@@ -0,0 +1,120 @@
+
+
+
+ Pictures from {ownerName}'s Blog Entries. Click a picture to view the full-size original.
+
+
+{#if !feed.initialized && feed.loading}
+ Loading pictures…
+{:else if pictures.length === 0 && feed.items.length > 0}
+
+ No image attachments in the entries loaded so far.
+
+{:else}
+
+{/if}
+
+ 0 ? 'That’s the whole picture stream.' : ''}
+/>
diff --git a/src/routes/Profile.svelte b/src/routes/Profile.svelte
index 7d0366e..79ea3eb 100644
--- a/src/routes/Profile.svelte
+++ b/src/routes/Profile.svelte
@@ -29,6 +29,7 @@
import InterestsTable from '$components/profile/InterestsTable.svelte'
import DetailsTable from '$components/profile/DetailsTable.svelte'
import FriendSpace from '$components/profile/FriendSpace.svelte'
+ import PicStream from '$components/profile/PicStream.svelte'
import BlogEntry from '$components/blog/BlogEntry.svelte'
import Pager from '$components/common/Pager.svelte'
@@ -107,12 +108,17 @@
entries = new Feed(
async (cursor) => {
- const preview = currentView !== 'blog'
+ const preview = currentView === 'profile'
+ const pictures = currentView === 'pics'
const page = await endpoints.fetchAccountStatuses(
session.api,
found.id,
cursor,
- preview ? { exclude_replies: true, exclude_reblogs: true } : {},
+ preview
+ ? { exclude_replies: true, exclude_reblogs: true }
+ : pictures
+ ? { only_media: true, exclude_reblogs: true }
+ : {},
)
// Pleroma-compatible forks do not all honour both exclusion flags.
@@ -125,7 +131,7 @@
}
: page
},
- currentView === 'blog' ? 20 : 10,
+ currentView === 'blog' || currentView === 'pics' ? 20 : 10,
)
void entries.reload()
@@ -295,10 +301,11 @@
{:else if view === 'pics'}
-
- Photos appear here as they're attached to blog entries.
- Read the blog to see them in context.
-
+ {#snippet action()}
+ [Back to Profile]
+ {/snippet}
+
+
{:else}