extract site_name and site_description from theme settings into standalone settings

site_name and site_description are shop identity, not theme concerns.
They now live in the Settings table as first-class settings with their
own assigns (@site_name, @site_description) piped through hooks and
plugs. The setup wizard writes site_name on account creation, and the
theme editor reads/writes via Settings.put_setting. Removed the
"configure your shop" checklist item since currency/country aren't
built yet. Also adds shop name field to setup wizard step 1.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
jamey
2026-03-03 14:52:31 +00:00
parent 8ea77e5992
commit 5b41f3fedf
25 changed files with 464 additions and 255 deletions

View File

@@ -7,8 +7,8 @@
<meta
name="description"
content={
assigns[:page_description] || @theme_settings.site_description ||
"Welcome to #{@theme_settings.site_name}"
assigns[:page_description] || @site_description ||
"Welcome to #{@site_name}"
}
/>
<!-- Favicon & PWA -->
@@ -17,19 +17,19 @@
<link rel="apple-touch-icon" href="/apple-touch-icon.png" />
<link rel="manifest" href="/site.webmanifest" />
<meta name="theme-color" content={@theme_settings.accent_color || "#000000"} />
<.live_title suffix={" · #{@theme_settings.site_name}"}>
<.live_title suffix={" · #{@site_name}"}>
{assigns[:page_title]}
</.live_title>
<% og_title =
if assigns[:page_title],
do: "#{assigns[:page_title]} · #{@theme_settings.site_name}",
else: @theme_settings.site_name
do: "#{assigns[:page_title]} · #{@site_name}",
else: @site_name
og_description =
assigns[:page_description] ||
@theme_settings.site_description ||
"Welcome to #{@theme_settings.site_name}" %>
<meta property="og:site_name" content={@theme_settings.site_name} />
@site_description ||
"Welcome to #{@site_name}" %>
<meta property="og:site_name" content={@site_name} />
<meta property="og:title" content={og_title} />
<meta property="og:description" content={og_description} />
<meta property="og:type" content={assigns[:og_type] || "website"} />