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:
+10
-2
@@ -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
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user