diff options
Diffstat (limited to 'src/lib/User/BadgeWall/FallbackBadge.svelte')
| -rw-r--r-- | src/lib/User/BadgeWall/FallbackBadge.svelte | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/src/lib/User/BadgeWall/FallbackBadge.svelte b/src/lib/User/BadgeWall/FallbackBadge.svelte index 3155acc5..bda93e4e 100644 --- a/src/lib/User/BadgeWall/FallbackBadge.svelte +++ b/src/lib/User/BadgeWall/FallbackBadge.svelte @@ -3,6 +3,7 @@ import locale from '$stores/locale'; import { tweened } from 'svelte/motion'; import type { Badge } from '../../Database/SB/User/badges'; + import type { AWCBadge } from '../../Data/awc'; import Tooltip from '../../Tooltip/LinkedTooltip.svelte'; import { databaseTimeToDate } from '../../Utility/time'; import { cubicOut } from 'svelte/easing'; @@ -16,7 +17,7 @@ export let replaceDelay = 1000; export let error = 'https://i2.kym-cdn.com/photos/images/newsfeed/000/290/992/0aa.jpg'; export let hideOnError = false; - export let badge: Badge; + export let badge: Badge | AWCBadge; export let style = ''; export let selectedBadge: Badge | null = null; export let awc = false; @@ -62,30 +63,31 @@ $mouse = { x: 0, y: 0 }; }; - const badgeToAny = (badge: Badge) => badge as any; + const isDBBadge = (b: Badge | AWCBadge): b is Badge => 'id' in b; + const asAWCBadge = (b: Badge | AWCBadge) => b as AWCBadge; </script> {#if replaceCount < maxReplaceCount} <Tooltip - content={`${dev && !awc ? `${badge.id} ${badge.click_count}\n` : ''}${ - badge.time ? $locale().dateFormatter(databaseTimeToDate(badge.time)) : '' + content={`${dev && !awc && isDBBadge(badge) ? `${badge.id} ${badge.click_count}\n` : ''}${ + isDBBadge(badge) && badge.time ? $locale().dateFormatter(databaseTimeToDate(badge.time)) : '' }${badge.description ? `${awc ? '' : '\n'}${badge.description}` : ''}${ badge.designer ? `\nDesigner: ${classifyDesignerName(badge.designer)}` : '' }`} - pin={`badge-${awc ? index : badge.id}`} + pin={`badge-${awc ? index : isDBBadge(badge) ? badge.id : 0}`} pinPosition="top" relative={preferences && preferences.badge_wall_css !== undefined && preferences.badge_wall_css.includes('backdrop-filter')} > <a - href={awc ? badgeToAny(badge).link : '#'} + href={awc ? asAWCBadge(badge).link : '#'} target="_blank" class="badge-container badge" onmousemove={handleMouseMove} onmouseleave={handleMouseLeave} onclick={(e) => { - if (!awc) { + if (!awc && isDBBadge(badge)) { e.preventDefault(); selectedBadge = badge; |