Replace missing SCSS styles with inline Tailwind utilities and
image imports. Use design-system components (Column, Flex, Text,
Button) for consistent look across the client.
- Import hc-center images as modules (hc_logo, payday, clock, benefits)
- Replace custom CSS classes with Tailwind (w-[], h-[], bg-*, rounded, etc.)
- Use Text bold/small/variant props instead of raw h4/h5/h6 tags
- Add hover:underline on links, border cards, rounded sections
- Remove dead SCSS import from index.scss
Block NotificationDialogMessageEvent badge types to prevent duplicate
bubbles. Wrap bubble content in stopPropagation div so button clicks
don't close the notification before toggleBadge runs. Request badge
data on mount so Wear works even if inventory was never opened.
Read user.badges.max.slots from config instead of hardcoded 5. InfoStand
layout adapts: 5 slots shows group badge, 6 slots replaces group with
6th badge. Double-click on InfoStand badge removes it. Badge received
toast now directly equips the badge via toggleBadge and closes.
New unseen badges pulse with a gold glow instead of a flat green
background. When a badge is received, a bubble notification appears
with the badge image, name, and a "Wear" button that opens inventory.
Fix slot 0 drag bug ('0' is falsy), prevent badge duplication from stale
props fallback in InfoStand, add sparse slot support, fix race condition
with pending server updates. Add drag preview, glow animations, drop
settle effect, and remove-badge indicator overlay.
dangerouslySetInnerHTML is needed for compatibility with existing
external_texts keys that contain HTML markup (e.g. <b>Created:</b>).
Only the missing friends count line is added.
- Remove dangerouslySetInnerHTML for creation date and last login fields
which caused corrupted display
- Use separate LocalizeText keys with safe React rendering instead
- Add missing friends count display
New external_texts keys required:
extendedprofile.created.title, extendedprofile.last.login.title,
extendedprofile.friends.count