feat: social links with inline SVG icons from CMS

SocialRecord gains icon field (SVG markup string). InlineSvg component
parses SVG string via html-react-parser. Footer renders icon on mobile
(sm:hidden label), label on sm+ (hidden icon). Email field refactored
from string to SocialRecord relation.
This commit is contained in:
Ilia Mashkov
2026-05-19 18:06:20 +03:00
parent 41af0b90a0
commit d0f09f0dbd
4 changed files with 64 additions and 7 deletions
+10 -2
View File
@@ -141,6 +141,10 @@ export type SocialRecord = BaseRecord & {
* Full URL for the social profile
*/
url: string;
/**
* SVG markup string stored in PocketBase
*/
icon: string;
};
/**
@@ -149,7 +153,7 @@ export type SocialRecord = BaseRecord & {
*/
export type ContactsRecord = BaseRecord & {
/**
* Primary contact email address
* Raw relation ID — use expand?.email for the resolved record
*/
email: string;
/**
@@ -157,9 +161,13 @@ export type ContactsRecord = BaseRecord & {
*/
socials: string[];
/**
* Expanded relation data, present when fetched with expand=socials
* Expanded relation data, present when fetched with expand=email,socials
*/
expand?: {
/**
* Resolved email contact record
*/
email?: SocialRecord;
/**
* Resolved social link records
*/