Skip to content

Commit 64361c5

Browse files
committed
load project thumbs and user pfps correctly
1 parent df6da7e commit 64361c5

4 files changed

Lines changed: 217 additions & 105 deletions

File tree

link-deps.cjs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,11 @@ const path = require("path");
2424

2525
// CONFIG
2626
const pathPenguinModApiModule =
27-
"C:/Users/Jeremy/Documents/Projects/PenguinMod/PenguinMod-ApiModule";
27+
"/home/ian/Documents/code/projects/penguinmod/PenguinMod-ApiModule";
2828
const pathPenguinModMarkDownNew =
29-
"C:/Users/Jeremy/Documents/Projects/PenguinMod/PenguinMod-MarkDownNew";
29+
"/home/ian/Documents/code/projects/penguinmod/PenguinMod-MarkDownNew";
3030
const pathPenguinModSvelteUI =
31-
"C:/Users/Jeremy/Documents/Projects/PenguinMod/PenguinMod-SvelteUI";
31+
"/home/ian/Documents/code/projects/penguinmod/PenguinMod-SvelteUI";
3232
const nodeModulesPathPenguinModApiModule = path.join(
3333
__dirname,
3434
"node_modules/penguinmod",

package-lock.json

Lines changed: 9 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/lib/components/CategoryHome/MyFeed.svelte

Lines changed: 60 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -6,34 +6,35 @@
66
import { Category, UserDisplay } from "PenguinMod-SvelteUI";
77
import Icon from "$lib/components/Icon/Component.svelte";
88
import LocalizedString from "$lib/components/Localization/LocalizedString.svelte";
9-
9+
1010
import { CACHE_USER_FEED } from "$lib/resources/cache/cache-time";
1111
import CacheHelper from "$lib/resources/cache/cache-helper";
1212
1313
import TranslationMapper from "$lib/resources/localization/translation/mapper";
1414
import PenguinModClient from "$lib/resources/penguinmod/client.js";
1515
import Locale from "$lib/resources/localization/locale";
16-
16+
1717
import StoreSettings from "$lib/stores/settings";
1818
import StoreSession from "$lib/stores/session";
19-
19+
2020
let props = $props();
2121
let loading = $state(false);
2222
let failed = $state(false);
2323
const loadingAttempt = async () => {
2424
// NOTE: We only actually ask the API if our own cache is expired (or doesnt exist, which is also counted as expired)
25-
if (!CacheHelper.isExpired("userFeedCachedTime", CACHE_USER_FEED)) return;
25+
if (!CacheHelper.isExpired("userFeedCachedTime", CACHE_USER_FEED))
26+
return;
2627
2728
const myFeed = await PenguinModClient.users.getMyFeed();
2829
CacheHelper.update({
2930
userFeedCachedData: myFeed,
3031
});
3132
};
3233
onMount(async () => {
33-
if (!($StoreSettings.loggedIn)) return;
34+
if (!$StoreSettings.loggedIn) return;
3435
if (loading) return; // TODO: remove these loading false then true then false things
3536
loading = true;
36-
37+
3738
try {
3839
await loadingAttempt();
3940
} catch (err) {
@@ -49,19 +50,43 @@
4950
switch (type) {
5051
// TODO: At some point we should stop including removed projects in the feed.
5152
case "follow":
52-
return TranslationMapper.mapCurrent("feed.following", "$1 followed you")
53-
.replaceAll("$1", author);
53+
return TranslationMapper.mapCurrent(
54+
"feed.following",
55+
"$1 followed you",
56+
).replaceAll("$1", author);
5457
case "upload":
55-
return TranslationMapper.mapCurrent("feed.uploaded", "$1 uploaded $2")
58+
return TranslationMapper.mapCurrent(
59+
"feed.uploaded",
60+
"$1 uploaded $2",
61+
)
5662
.replaceAll("$1", author)
57-
.replaceAll("$2", content.name || TranslationMapper.mapCurrent("project.status.removed", "(removed)"));
63+
.replaceAll(
64+
"$2",
65+
content.name ||
66+
TranslationMapper.mapCurrent(
67+
"project.status.removed",
68+
"(removed)",
69+
),
70+
);
5871
case "remix":
59-
return TranslationMapper.mapCurrent("feed.remixed", "$1 remixed $2")
72+
return TranslationMapper.mapCurrent(
73+
"feed.remixed",
74+
"$1 remixed $2",
75+
)
6076
.replaceAll("$1", author)
61-
.replaceAll("$2", content.name || TranslationMapper.mapCurrent("project.status.removed", "(removed)"));
77+
.replaceAll(
78+
"$2",
79+
content.name ||
80+
TranslationMapper.mapCurrent(
81+
"project.status.removed",
82+
"(removed)",
83+
),
84+
);
6285
case "posted":
63-
return TranslationMapper.mapCurrent("feed.posted", "$1 made a post")
64-
.replaceAll("$1", author);
86+
return TranslationMapper.mapCurrent(
87+
"feed.posted",
88+
"$1 made a post",
89+
).replaceAll("$1", author);
6590
}
6691
};
6792
const getFeedUrl = (type, author, content) => {
@@ -82,12 +107,9 @@
82107
<Category {...props}>
83108
<!-- My Feed Category -->
84109
{#snippet header()}
85-
<LocalizedString
86-
text="My Feed"
87-
key="home.sections.feed"
88-
/>
110+
<LocalizedString text="My Feed" key="home.sections.feed" />
89111
{/snippet}
90-
{#if !($StoreSettings.loggedIn)}
112+
{#if !$StoreSettings.loggedIn}
91113
<!-- NOTE: This state should never render, but we'll handle it nicely anyways -->
92114
<div class="category-textdisplay">
93115
<p>
@@ -119,18 +141,29 @@
119141
{:else}
120142
<div class="category-feed">
121143
{#each $StoreSession.userFeedCachedData as feedItem}
122-
<!-- TODO: use the right avatar URL (probably add getPfpUrl to api module) -->
123144
<!-- TODO: User display should allow 3 hrefs for the user pfp & bottom text (though we only need the image url to go elsewhere here) -->
124145
<UserDisplay
125-
src="https://projects.penguinmod.com/api/v1/users/getpfp?username=jeremygamer13"
126-
href={getFeedUrl(feedItem.type, feedItem.username, feedItem.data)}
146+
src={PenguinModClient.users.getPfpUrl(
147+
feedItem.username,
148+
)}
149+
href={getFeedUrl(
150+
feedItem.type,
151+
feedItem.username,
152+
feedItem.data,
153+
)}
127154
kind="detail"
128155
>
129156
{#snippet textTop()}
130-
{getFeedText(feedItem.type, feedItem.username, feedItem.data)}
157+
{getFeedText(
158+
feedItem.type,
159+
feedItem.username,
160+
feedItem.data,
161+
)}
131162
{/snippet}
132163
{#snippet textBottom()}
133-
{Locale.timestampToDateWithTime(Number(new Date(feedItem.date)))}
164+
{Locale.timestampToDateWithTime(
165+
Number(new Date(feedItem.date)),
166+
)}
134167
{/snippet}
135168
</UserDisplay>
136169
{:else}
@@ -174,10 +207,11 @@
174207
overflow: hidden;
175208
overflow-y: auto;
176209
}
177-
.category-feed :global(div[data-penguinmodsvelteui-userdisplay=true]) {
210+
.category-feed :global(div[data-penguinmodsvelteui-userdisplay="true"]) {
178211
margin-bottom: 4px;
179212
}
180-
.category-feed :global(div[data-penguinmodsvelteui-userdisplay=true]:last-child) {
213+
.category-feed
214+
:global(div[data-penguinmodsvelteui-userdisplay="true"]:last-child) {
181215
margin-bottom: 0;
182216
}
183217
</style>

0 commit comments

Comments
 (0)