SNS 링크 설정 추가 v1.5.39

This commit is contained in:
2026-06-02 17:06:02 +09:00
parent e3b8087b09
commit 4da1ade2cf
15 changed files with 411 additions and 20 deletions

View File

@@ -20,6 +20,7 @@ import {
normalizeSignupBlockedUsernames,
parseSignupBlockedUsernamesFromDb
} from '../../lib/signup-blocked-usernames.js'
import { normalizeSocialLinks } from '../../lib/social-links.js'
import { getPostgresClient } from './postgres-client'
/**
@@ -107,6 +108,7 @@ const mapSiteSettingsRow = (row) => ({
logoUrl: row.logo_url || '',
faviconUrl: row.favicon_url || '',
copyrightText: row.copyright_text,
socialLinks: normalizeSocialLinks(row.social_links),
showPostUpdatedAt: Boolean(row.show_post_updated_at),
homeCoverImageUrl: row.home_cover_image_url || '',
homeCoverDarkImageUrl: row.home_cover_dark_image_url || '',
@@ -876,6 +878,7 @@ export const updateSiteSettings = async (input) => {
logo_url,
favicon_url,
copyright_text,
social_links,
show_post_updated_at,
home_cover_image_url,
home_cover_dark_image_url,
@@ -902,6 +905,7 @@ export const updateSiteSettings = async (input) => {
${input.logoUrl || ''},
${input.faviconUrl || ''},
${input.copyrightText},
${JSON.stringify(normalizeSocialLinks(input.socialLinks))},
${input.showPostUpdatedAt ? true : false},
${input.homeCoverImageUrl || ''},
${input.homeCoverDarkImageUrl || ''},
@@ -928,6 +932,7 @@ export const updateSiteSettings = async (input) => {
logo_url = EXCLUDED.logo_url,
favicon_url = EXCLUDED.favicon_url,
copyright_text = EXCLUDED.copyright_text,
social_links = EXCLUDED.social_links,
show_post_updated_at = EXCLUDED.show_post_updated_at,
home_cover_image_url = EXCLUDED.home_cover_image_url,
home_cover_dark_image_url = EXCLUDED.home_cover_dark_image_url,

View File

@@ -18,6 +18,7 @@ import {
MAX_SIGNUP_BLOCKED_USERNAME_LENGTH,
normalizeSignupBlockedUsernames
} from '../../lib/signup-blocked-usernames.js'
import { normalizeSocialLinks } from '../../lib/social-links.js'
export const adminSiteSettingsInputSchema = z.object({
title: z.string().trim().min(1),
@@ -27,6 +28,7 @@ export const adminSiteSettingsInputSchema = z.object({
logoUrl: z.string().trim().max(500).optional().default(''),
faviconUrl: z.string().trim().max(500).optional().default(''),
copyrightText: z.string().trim().min(1),
socialLinks: z.unknown().optional().default([]),
showPostUpdatedAt: z.boolean().optional().default(false),
homeCoverImageUrl: z.string().trim().max(500).optional().default(''),
homeCoverDarkImageUrl: z.string().trim().max(500).optional().default(''),
@@ -71,6 +73,7 @@ export const adminSiteSettingsInputSchema = z.object({
}).transform((data) => ({
...data,
brandColor: normalizeBrandColor(data.brandColor),
socialLinks: normalizeSocialLinks(data.socialLinks),
announcementUrl: normalizeAnnouncementUrl(data.announcementUrl),
announcementBackgroundColor: normalizeAnnouncementBackgroundColor(data.announcementBackgroundColor),
announcementAlignment: normalizeAnnouncementAlignment(data.announcementAlignment),

View File

@@ -21,6 +21,7 @@ export const getDefaultSiteSettings = () => {
logoUrl: '',
faviconUrl: '',
copyrightText: `©${new Date().getFullYear()} ${title}`,
socialLinks: [],
showPostUpdatedAt: false,
homeCoverImageUrl: '',
homeCoverDarkImageUrl: '',