Browse Source

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

pull/209/head
Trent Larson 3 days ago
parent
commit
86caf793aa
  1. 5
      src/components/ActivityListItem.vue
  2. 7
      src/interfaces/claims.ts
  3. 7
      src/interfaces/index.ts
  4. 12
      src/views/ClaimView.vue

5
src/components/ActivityListItem.vue

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

7
src/interfaces/claims.ts

@ -14,6 +14,13 @@ export interface AgreeActionClaim extends ClaimObject {
object: Record<string, unknown>; 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. // Note that previous VCs may have additional fields.
// https://endorser.ch/doc/html/transactions.html#id4 // https://endorser.ch/doc/html/transactions.html#id4
export interface GiveActionClaim extends ClaimObject { export interface GiveActionClaim extends ClaimObject {

7
src/interfaces/index.ts

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

12
src/views/ClaimView.vue

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

Loading…
Cancel
Save