feat: make spinner more standard, show emoji on claim-view page

This commit is contained in:
2025-10-19 18:43:21 -06:00
parent 499fbd2cb3
commit 86caf793aa
4 changed files with 22 additions and 9 deletions

View File

@@ -106,7 +106,9 @@
@click="toggleThisEmoji(emoji)"
>
<!-- Show spinner when loading -->
<div v-if="loadingEmojis" class="animate-spin text-xs">⟳</div>
<div v-if="loadingEmojis" class="animate-spin text-xs">
<font-awesome icon="spinner" class="fa-spin" />
</div>
<span v-else class="text-sm leading-none">{{ emoji }}</span>
<span class="text-xs text-slate-600 font-medium leading-none">{{
count
@@ -504,7 +506,6 @@ export default class ActivityListItem extends Vue {
);
if (userHasEmoji) {
this.$notify(
{
group: "modal",

View File

@@ -14,6 +14,13 @@ export interface AgreeActionClaim extends ClaimObject {
object: Record<string, unknown>;
}
export interface EmojiClaim extends ClaimObject {
// default context is "https://endorser.ch"
"@type": "Emoji";
text: string;
parentItem: { lastClaimId: string };
}
// Note that previous VCs may have additional fields.
// https://endorser.ch/doc/html/transactions.html#id4
export interface GiveActionClaim extends ClaimObject {

View File

@@ -1,5 +1,6 @@
export * from "./limits";
export * from "./deepLinks";
export * from "./common";
export * from "./claims";
export * from "./claims-result";
export * from "./common";
export * from "./deepLinks";
export * from "./limits";
export * from "./records";

View File

@@ -91,12 +91,12 @@
<div class="text-sm overflow-hidden">
<div
data-testId="description"
class="overflow-hidden text-ellipsis"
class="flex items-start gap-2 overflow-hidden"
>
<font-awesome icon="message" class="fa-fw text-slate-400" />
<font-awesome icon="message" class="fa-fw text-slate-400 flex-shrink-0 mt-1" />
<vue-markdown
:source="claimDescription"
class="markdown-content"
class="markdown-content flex-1 min-w-0"
/>
</div>
<div class="overflow-hidden text-ellipsis">
@@ -551,7 +551,7 @@ import VueMarkdown from "vue-markdown-render";
import { Router, RouteLocationNormalizedLoaded } from "vue-router";
import { copyToClipboard } from "../services/ClipboardService";
import { GenericVerifiableCredential } from "../interfaces";
import { EmojiClaim, GenericVerifiableCredential } from "../interfaces";
import GiftedDialog from "../components/GiftedDialog.vue";
import QuickNav from "../components/QuickNav.vue";
import { NotificationIface } from "../constants/app";
@@ -667,6 +667,10 @@ export default class ClaimView extends Vue {
return giveClaim.description || "";
}
if (this.veriClaim.claimType === "Emoji") {
return (claim as EmojiClaim).text || "";
}
// Fallback for other claim types
return (claim as { description?: string })?.description || "";
}