Skip to content

Commit a56dc98

Browse files
feat: add the new missing post image.
massive thanks to GlitchyPSI (glitchypsi.xyz @ bluesky) for it!!!!! Co-authored-by: GlitchyPSIX <11571952+GlitchyPSIX@users.noreply.github.com>
1 parent 2bb700b commit a56dc98

File tree

6 files changed

+31
-13
lines changed

6 files changed

+31
-13
lines changed
5.18 KB
Loading
-3.77 KB
Binary file not shown.

PinkSea.Frontend/src/components/oekaki/PostViewOekakiTombstoneCard.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
<template>
55
<div class="oekaki-card">
6-
<img src="/mystery.gif" />
6+
<img src="/assets/img/missing.png" />
77
<div class="oekaki-meta">
88
{{ $t("post.this_post_no_longer_exists") }}
99
</div>
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
export interface OekakiTombstone {
2+
formerAt: string
3+
}

PinkSea.Frontend/src/views/PostView.vue

Lines changed: 21 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -10,26 +10,35 @@ import PostViewOekakiChildCard from '@/components/oekaki/PostViewOekakiChildCard
1010
import RespondBox from '@/components/RespondBox.vue'
1111
import Loader from '@/components/Loader.vue'
1212
import PostViewOekakiTombstoneCard from '@/components/oekaki/PostViewOekakiTombstoneCard.vue'
13+
import type { OekakiTombstone } from '@/models/oekaki-tombstone'
1314
1415
const route = useRoute();
1516
16-
const parent = ref<Oekaki | null>(null);
17+
const parent = ref<Oekaki | OekakiTombstone | null>(null);
1718
const children = ref<Oekaki[] | null>(null);
1819
1920
const parentIsTombstone = computed(() => {
2021
return parent.value !== null && 'formerAt' in parent.value;
2122
});
2223
2324
onBeforeMount(async () => {
24-
const { data } = await xrpc.get("com.shinolabs.pinksea.getOekaki", {
25-
params: {
26-
did: route.params.did as string,
27-
rkey: route.params.rkey as string
28-
}
29-
});
30-
31-
parent.value = data.parent;
32-
children.value = data.children;
25+
try {
26+
const { data } = await xrpc.get("com.shinolabs.pinksea.getOekaki", {
27+
params: {
28+
did: route.params.did as string,
29+
rkey: route.params.rkey as string
30+
}
31+
});
32+
33+
parent.value = data.parent;
34+
children.value = data.children;
35+
} catch {
36+
parent.value = {
37+
formerAt: 'at://did:web:example.com/com.shinolabs.pinksea.oekaki/fakefake'
38+
} as OekakiTombstone;
39+
40+
children.value = [];
41+
}
3342
});
3443
3544
</script>
@@ -39,11 +48,11 @@ onBeforeMount(async () => {
3948
<Loader v-if="parent === null" />
4049
<div v-else>
4150
<PostViewOekakiTombstoneCard v-if="parentIsTombstone" />
42-
<PostViewOekakiParentCard v-else :oekaki="parent" />
51+
<PostViewOekakiParentCard v-else :oekaki="parent as Oekaki" />
4352
<br />
4453
<PostViewOekakiChildCard v-for="child of children" v-bind:key="child.at" :oekaki="child" />
4554

46-
<RespondBox v-if="!parentIsTombstone" :parent="parent" />
55+
<RespondBox v-if="!parentIsTombstone" :parent="parent as Oekaki" />
4756
</div>
4857
</PanelLayout>
4958
</template>

README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,12 @@ In order to run the client app locally, you need a fairly modern [Node.js](https
6363

6464
The built app will be inside of the `dist` folder.
6565

66+
# Acknowledgments
67+
68+
This is a list of people I'd love to extend my most sincere gratitude to!!
69+
70+
* [GlitchyPSI](https://bsky.app/profile/glitchypsi.xyz) for drawing the "post is missing" image visible whenever we see a post that does not exist! Thank you so much!!!
71+
6672
# License
6773

6874
The PinkSea code (with the exception of PinkSea.AtProto and PinkSea.AtProto.Server) is licensed under the European Union Public License-1.2. PinkSea.AtProto is released into the public domain as specified by the Unlicense. The appropriate licenses are in each folder's LICENSE files.

0 commit comments

Comments
 (0)