@growth-labs/cms 0.5.4 → 0.5.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/README.md +19 -1
  2. package/dist/integration/options.d.ts +19 -0
  3. package/dist/integration/options.d.ts.map +1 -1
  4. package/dist/integration/options.js +6 -0
  5. package/dist/integration/options.js.map +1 -1
  6. package/dist/routes/authors.d.ts.map +1 -1
  7. package/dist/routes/authors.js +33 -8
  8. package/dist/routes/authors.js.map +1 -1
  9. package/dist/routes/recovery-errors.d.ts +21 -0
  10. package/dist/routes/recovery-errors.d.ts.map +1 -0
  11. package/dist/routes/recovery-errors.js +53 -0
  12. package/dist/routes/recovery-errors.js.map +1 -0
  13. package/dist/ui/client/mount.d.ts.map +1 -1
  14. package/dist/ui/client/mount.js +5 -2
  15. package/dist/ui/client/mount.js.map +1 -1
  16. package/dist/ui/components/ShareModal.d.ts +4 -1
  17. package/dist/ui/components/ShareModal.d.ts.map +1 -1
  18. package/dist/ui/components/ShareModal.js +39 -9
  19. package/dist/ui/components/ShareModal.js.map +1 -1
  20. package/dist/ui/components/SharePickers.d.ts +29 -2
  21. package/dist/ui/components/SharePickers.d.ts.map +1 -1
  22. package/dist/ui/components/SharePickers.js +33 -8
  23. package/dist/ui/components/SharePickers.js.map +1 -1
  24. package/dist/ui/screens/AuthorsScreen.d.ts.map +1 -1
  25. package/dist/ui/screens/AuthorsScreen.js +2 -1
  26. package/dist/ui/screens/AuthorsScreen.js.map +1 -1
  27. package/dist/ui/screens/ContentRoute.d.ts +3 -1
  28. package/dist/ui/screens/ContentRoute.d.ts.map +1 -1
  29. package/dist/ui/screens/ContentRoute.js +3 -3
  30. package/dist/ui/screens/ContentRoute.js.map +1 -1
  31. package/dist/ui/screens/EditorScreen.d.ts +2 -1
  32. package/dist/ui/screens/EditorScreen.d.ts.map +1 -1
  33. package/dist/ui/screens/EditorScreen.js +2 -2
  34. package/dist/ui/screens/EditorScreen.js.map +1 -1
  35. package/dist/ui/screens/LibraryScreen.d.ts +2 -1
  36. package/dist/ui/screens/LibraryScreen.d.ts.map +1 -1
  37. package/dist/ui/screens/LibraryScreen.js +2 -2
  38. package/dist/ui/screens/LibraryScreen.js.map +1 -1
  39. package/dist/ui/screens/SocialShareScreen.d.ts +3 -1
  40. package/dist/ui/screens/SocialShareScreen.d.ts.map +1 -1
  41. package/dist/ui/screens/SocialShareScreen.js +20 -8
  42. package/dist/ui/screens/SocialShareScreen.js.map +1 -1
  43. package/dist/ui/screens/author-recovery.d.ts +11 -0
  44. package/dist/ui/screens/author-recovery.d.ts.map +1 -0
  45. package/dist/ui/screens/author-recovery.js +18 -0
  46. package/dist/ui/screens/author-recovery.js.map +1 -0
  47. package/dist/ui/screens/registry.d.ts +3 -0
  48. package/dist/ui/screens/registry.d.ts.map +1 -1
  49. package/dist/ui/screens/registry.js +16 -13
  50. package/dist/ui/screens/registry.js.map +1 -1
  51. package/dist/ui/screens/social-share-data.d.ts +23 -2
  52. package/dist/ui/screens/social-share-data.d.ts.map +1 -1
  53. package/dist/ui/screens/social-share-data.js +57 -11
  54. package/dist/ui/screens/social-share-data.js.map +1 -1
  55. package/package.json +1 -1
  56. package/src/integration/options.ts +7 -0
  57. package/src/routes/authors.ts +41 -20
  58. package/src/routes/recovery-errors.ts +70 -0
  59. package/src/ui/client/mount.tsx +5 -2
  60. package/src/ui/components/ShareModal.tsx +102 -19
  61. package/src/ui/components/SharePickers.tsx +76 -27
  62. package/src/ui/screens/AuthorsScreen.tsx +7 -2
  63. package/src/ui/screens/ContentRoute.tsx +13 -3
  64. package/src/ui/screens/EditorScreen.tsx +7 -1
  65. package/src/ui/screens/LibraryScreen.tsx +3 -1
  66. package/src/ui/screens/SocialShareScreen.tsx +53 -6
  67. package/src/ui/screens/author-recovery.ts +32 -0
  68. package/src/ui/screens/registry.tsx +22 -12
  69. package/src/ui/screens/social-share-data.ts +92 -13
@@ -15,6 +15,9 @@
15
15
  * `batchCreateSchema` discriminated union in share-links-batch.ts.
16
16
  */
17
17
  export const SHARE_MODES = ['author-social', 'owned-social', 'youtube', 'newsletter'];
18
+ export function requiresCanonicalAuthorRoster(mode, allowInlineAuthorCreation) {
19
+ return mode === 'author-social' && !allowInlineAuthorCreation;
20
+ }
18
21
  /**
19
22
  * Social platform options.
20
23
  * SOURCE OF TRUTH: @growth-labs/analytics src/utils/social.ts SOCIAL_PLATFORMS
@@ -62,6 +65,45 @@ export const YOUTUBE_BUNDLE_PLACEMENTS = ['description', 'comment', 'bio'];
62
65
  * SOURCE OF TRUTH: @growth-labs/analytics src/utils/social.ts SocialBoostMode
63
66
  */
64
67
  export const BOOST_MODES = ['none', 'paid_direct', 'boosted_existing'];
68
+ export function canonicalAuthorRosterStatus({ enabled, author, authors, loading, error, }) {
69
+ if (!enabled)
70
+ return { blocked: false, kind: 'not-required', message: null };
71
+ const id = author.id?.trim() ?? '';
72
+ const slug = author.slug?.trim().toLowerCase() ?? '';
73
+ const identity = id || slug;
74
+ if (!identity) {
75
+ return {
76
+ blocked: true,
77
+ kind: 'missing-author',
78
+ message: 'No canonical author is linked to this content. Add or publish the author in the Authors screen, then retry.',
79
+ };
80
+ }
81
+ if (loading) {
82
+ return {
83
+ blocked: true,
84
+ kind: 'loading',
85
+ message: `Checking the synchronized author roster for canonical author ${identity}.`,
86
+ };
87
+ }
88
+ if (error) {
89
+ return {
90
+ blocked: true,
91
+ kind: 'unavailable',
92
+ message: `The author roster could not be verified for canonical author ${identity}. Refresh and retry; sharing is blocked until synchronization can be proven.`,
93
+ };
94
+ }
95
+ const synchronized = id !== ''
96
+ ? authors.some((candidate) => candidate.id === id)
97
+ : authors.some((candidate) => candidate.slug.trim().toLowerCase() === slug);
98
+ if (!synchronized) {
99
+ return {
100
+ blocked: true,
101
+ kind: 'out-of-sync',
102
+ message: `Author roster out of sync for canonical author ${identity}. Publish or synchronize that author in the Authors screen, refresh, and retry.`,
103
+ };
104
+ }
105
+ return { blocked: false, kind: 'synchronized', message: null };
106
+ }
65
107
  // ---------------------------------------------------------------------------
66
108
  // initShareForm
67
109
  // ---------------------------------------------------------------------------
@@ -73,9 +115,7 @@ export const BOOST_MODES = ['none', 'paid_direct', 'boosted_existing'];
73
115
  * `platform` to 'youtube'; all other fields default to empty/false/none.
74
116
  */
75
117
  export function initShareForm(mode, prefill) {
76
- const defaultCampaign = mode === 'author-social' || mode === 'owned-social'
77
- ? prefill?.campaign?.trim() || prefill?.contentSlug?.trim() || ''
78
- : '';
118
+ const defaultCampaign = mode === 'owned-social' ? prefill?.campaign?.trim() || prefill?.contentSlug?.trim() || '' : '';
79
119
  const base = {
80
120
  mode,
81
121
  destinationUrl: prefill?.destinationUrl ?? '',
@@ -136,21 +176,25 @@ export function shareFormReducer(state, action) {
136
176
  mode,
137
177
  // Mode-specific resets
138
178
  platform: mode === 'youtube' ? 'youtube' : mode === 'newsletter' ? '' : '',
139
- campaign: mode === 'youtube' || mode === 'newsletter' ? '' : state.campaign,
179
+ campaign: mode === 'owned-social'
180
+ ? state.campaign || state.contentSlug
181
+ : mode === 'author-social'
182
+ ? ''
183
+ : '',
140
184
  placements: mode === 'youtube' ? [...YOUTUBE_BUNDLE_PLACEMENTS] : [],
141
185
  youtubeVideoId: mode === 'youtube' ? state.youtubeVideoId : '',
142
186
  issue: mode === 'newsletter' ? state.issue : '',
143
187
  };
144
188
  }
145
189
  case 'prefill-content': {
146
- const shouldDefaultCampaign = (state.mode === 'author-social' || state.mode === 'owned-social') && !state.campaign.trim();
190
+ const shouldDefaultCampaign = state.mode === 'owned-social' && !state.campaign.trim();
147
191
  return {
148
192
  ...state,
149
193
  destinationUrl: action.destinationUrl,
150
194
  contentSlug: action.contentSlug,
151
195
  contentType: action.contentType,
152
196
  campaign: shouldDefaultCampaign ? action.contentSlug : state.campaign,
153
- ...(action.author ? { author: action.author } : {}),
197
+ author: action.author ?? {},
154
198
  };
155
199
  }
156
200
  case 'set-field':
@@ -221,14 +265,16 @@ export function buildBatchPayloadFrom(state) {
221
265
  };
222
266
  switch (state.mode) {
223
267
  case 'author-social': {
224
- if (!state.campaign.trim()) {
225
- return { ok: false, error: 'Campaign is required for author-social.' };
268
+ if (!refHasContent(state.author)) {
269
+ return {
270
+ ok: false,
271
+ error: 'A canonical author is required for Author Social. Select a synchronized author.',
272
+ };
226
273
  }
227
274
  const payload = {
228
275
  kind: 'author-social',
229
276
  ...shared,
230
277
  platform: state.platform,
231
- campaign: state.campaign.trim(),
232
278
  ...(state.placement && state.placement !== 'unknown' ? { placement: state.placement } : {}),
233
279
  ...(state.boostMode && state.boostMode !== 'none' ? { boostMode: state.boostMode } : {}),
234
280
  ...(nonEmpty(state.promoCode) ? { promoCode: state.promoCode } : {}),
@@ -398,7 +444,7 @@ export function toPlainText(output) {
398
444
  * given mode. The React form renders only these inputs; the request builders
399
445
  * read only these fields.
400
446
  *
401
- * 'author-social' → campaign, platform, author, destinationUrl, advanced
447
+ * 'author-social' → platform, author, destinationUrl, advanced
402
448
  * 'owned-social' → campaign, platform, handle, (optional author), destinationUrl, advanced
403
449
  * 'youtube' → youtubeVideoId, placements, (optional handle/author), destinationUrl (NO campaign)
404
450
  * 'newsletter' → issue, (optional author/handle), destinationUrl (NO campaign/platform/boostMode)
@@ -407,7 +453,7 @@ export function relevantFields(mode) {
407
453
  const shared = ['destinationUrl', 'contentSlug', 'contentType', 'property', 'sourcePath'];
408
454
  switch (mode) {
409
455
  case 'author-social':
410
- return [...shared, 'campaign', 'platform', 'author', 'placement', 'boostMode', 'promoCode'];
456
+ return [...shared, 'platform', 'author', 'placement', 'boostMode', 'promoCode'];
411
457
  case 'owned-social':
412
458
  return [
413
459
  ...shared,
@@ -1 +1 @@
1
- {"version":3,"file":"social-share-data.js","sourceRoot":"","sources":["../../../src/ui/screens/social-share-data.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"social-share-data.js","sourceRoot":"","sources":["../../../src/ui/screens/social-share-data.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@growth-labs/cms",
3
- "version": "0.5.4",
3
+ "version": "0.5.5",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "growth-labs-cms-migrations": "./dist/cli/migrations.js"
@@ -16,6 +16,12 @@ const themeSchema = z
16
16
  })
17
17
  .default({})
18
18
 
19
+ const socialSharingSchema = z
20
+ .object({
21
+ allowInlineAuthorCreation: z.boolean().default(true),
22
+ })
23
+ .default({})
24
+
19
25
  export const cmsIntegrationOptionsSchema = z
20
26
  .object({
21
27
  workspaces: z.array(workspaceSchema).min(1, 'at least one workspace is required'),
@@ -23,6 +29,7 @@ export const cmsIntegrationOptionsSchema = z
23
29
  adminBasePath: z.string().default('/admin'),
24
30
  searchEnabled: z.boolean().default(true),
25
31
  theme: themeSchema,
32
+ socialSharing: socialSharingSchema,
26
33
  })
27
34
  .transform((o) => ({ ...o, activeWorkspaceId: o.activeWorkspaceId ?? o.workspaces[0].id }))
28
35
 
@@ -10,6 +10,7 @@ import { slugify } from '../engine/slug.js'
10
10
  import type { CmsRouteConfig } from './config.js'
11
11
  import { resolveConfig } from './config.js'
12
12
  import { json, type RouteContext, requireId } from './context.js'
13
+ import { translateAuthorWriteError } from './recovery-errors.js'
13
14
 
14
15
  // --- publisher-authors.ts helpers (extract) -------------------------------
15
16
 
@@ -184,21 +185,31 @@ export function createAuthorRoutes(config: CmsRouteConfig): AuthorRouteHandlers
184
185
  if (existingId) return json({ error: 'Author id already exists' }, 409)
185
186
 
186
187
  const social = serializeSocialInput(parsed.data.social ?? null)
187
- await ctx.db
188
- .prepare(
189
- `INSERT INTO authors (id, name, slug, bio, avatar, email, social, created_at, updated_at)
188
+ try {
189
+ await ctx.db
190
+ .prepare(
191
+ `INSERT INTO authors (id, name, slug, bio, avatar, email, social, created_at, updated_at)
190
192
  VALUES (?, ?, ?, ?, ?, ?, ?, unixepoch(), unixepoch())`,
191
- )
192
- .bind(
193
- id,
194
- parsed.data.name.trim(),
195
- slug,
196
- normalizeNullable(parsed.data.bio),
197
- normalizeNullable(parsed.data.avatar),
198
- normalizeNullable(parsed.data.email),
199
- social,
200
- )
201
- .run()
193
+ )
194
+ .bind(
195
+ id,
196
+ parsed.data.name.trim(),
197
+ slug,
198
+ normalizeNullable(parsed.data.bio),
199
+ normalizeNullable(parsed.data.avatar),
200
+ normalizeNullable(parsed.data.email),
201
+ social,
202
+ )
203
+ .run()
204
+ } catch (error) {
205
+ const recovery = translateAuthorWriteError({
206
+ error,
207
+ operation: 'create',
208
+ author: { id, slug },
209
+ })
210
+ if (recovery) return json(recovery.body, recovery.status)
211
+ throw error
212
+ }
202
213
 
203
214
  return json({ id, slug }, 201)
204
215
  },
@@ -267,14 +278,24 @@ export function createAuthorRoutes(config: CmsRouteConfig): AuthorRouteHandlers
267
278
  ? serializeSocialInput(parsed.data.social ?? null)
268
279
  : existing.social
269
280
 
270
- await ctx.db
271
- .prepare(
272
- `UPDATE authors
281
+ try {
282
+ await ctx.db
283
+ .prepare(
284
+ `UPDATE authors
273
285
  SET name = ?, slug = ?, bio = ?, avatar = ?, email = ?, social = ?, updated_at = unixepoch()
274
286
  WHERE id = ?`,
275
- )
276
- .bind(nextName, nextSlug, nextBio, nextAvatar, nextEmail, nextSocial, id)
277
- .run()
287
+ )
288
+ .bind(nextName, nextSlug, nextBio, nextAvatar, nextEmail, nextSocial, id)
289
+ .run()
290
+ } catch (error) {
291
+ const recovery = translateAuthorWriteError({
292
+ error,
293
+ operation: 'update',
294
+ author: { id, slug: nextSlug },
295
+ })
296
+ if (recovery) return json(recovery.body, recovery.status)
297
+ throw error
298
+ }
278
299
 
279
300
  return json({ id, slug: nextSlug })
280
301
  },
@@ -0,0 +1,70 @@
1
+ export const AUTHOR_RECOVERY_CLASSES = [
2
+ 'AUTHOR_SYNC_IDENTITY_CONFLICT',
3
+ 'AUTHOR_SYNC_NON_CANONICAL',
4
+ 'AUTHOR_SYNC_IMMUTABLE_ID',
5
+ 'AUTHOR_SHARE_CAMPAIGN_INVARIANT',
6
+ ] as const
7
+
8
+ export type AuthorRecoveryClass = (typeof AUTHOR_RECOVERY_CLASSES)[number]
9
+
10
+ export interface AuthorRecoveryIdentity {
11
+ id: string
12
+ slug: string
13
+ }
14
+
15
+ export interface AuthorRecoveryBody {
16
+ error: string
17
+ errorClass: AuthorRecoveryClass
18
+ author: AuthorRecoveryIdentity
19
+ }
20
+
21
+ export function classifyAuthorRecoveryError(error: unknown): AuthorRecoveryClass | null {
22
+ const messages = collectErrorMessages(error)
23
+ for (const errorClass of AUTHOR_RECOVERY_CLASSES) {
24
+ if (messages.some((message) => message.includes(errorClass))) return errorClass
25
+ }
26
+ return null
27
+ }
28
+
29
+ export function translateAuthorWriteError(input: {
30
+ error: unknown
31
+ operation: 'create' | 'update'
32
+ author: AuthorRecoveryIdentity
33
+ }): { status: number; body: AuthorRecoveryBody } | null {
34
+ const errorClass = classifyAuthorRecoveryError(input.error)
35
+ if (!errorClass) return null
36
+
37
+ const body: AuthorRecoveryBody = {
38
+ error: `${errorClass}: canonical author synchronization failed (author id: ${input.author.id}; slug: ${input.author.slug})`,
39
+ errorClass,
40
+ author: input.author,
41
+ }
42
+ console.error('GL_CMS_AUTHOR_SYNC_FAILURE', {
43
+ event: 'author_sync_failure',
44
+ errorClass,
45
+ operation: input.operation,
46
+ authorId: input.author.id,
47
+ authorSlug: input.author.slug,
48
+ })
49
+ return {
50
+ status: errorClass === 'AUTHOR_SYNC_NON_CANONICAL' ? 422 : 409,
51
+ body,
52
+ }
53
+ }
54
+
55
+ function collectErrorMessages(error: unknown): string[] {
56
+ const messages: string[] = []
57
+ let current: unknown = error
58
+ const seen = new Set<unknown>()
59
+ while (current && !seen.has(current)) {
60
+ seen.add(current)
61
+ if (current instanceof Error) {
62
+ messages.push(current.message)
63
+ current = current.cause
64
+ } else {
65
+ messages.push(String(current))
66
+ break
67
+ }
68
+ }
69
+ return messages
70
+ }
@@ -2,7 +2,7 @@ import { config } from 'virtual:growth-labs/cms/config'
2
2
  import { createRoot } from 'react-dom/client'
3
3
  import type { CmsUser } from '../../routes/context.js'
4
4
  import { CmsApp } from '../components/CmsApp.js'
5
- import { cmsScreens } from '../screens/registry.js'
5
+ import { createCmsScreens } from '../screens/registry.js'
6
6
  import { initialWorkspaceState } from '../workspace-context.js'
7
7
  import { type MeResponseSummary, resolveBootState } from './boot-state.js'
8
8
  import '../styles/broadsheet.css'
@@ -35,7 +35,10 @@ export async function mount(elementId = 'masthead-root') {
35
35
  : null
36
36
 
37
37
  const initial = initialWorkspaceState(config.workspaces, config.activeWorkspaceId, user)
38
- createRoot(el).render(<CmsApp initial={initial} screens={cmsScreens} boot={boot} />)
38
+ const screens = createCmsScreens({
39
+ allowInlineAuthorCreation: config.socialSharing.allowInlineAuthorCreation,
40
+ })
41
+ createRoot(el).render(<CmsApp initial={initial} screens={screens} boot={boot} />)
39
42
  }
40
43
 
41
44
  void mount()
@@ -26,10 +26,12 @@ import {
26
26
  BOOST_MODES,
27
27
  type BoostMode,
28
28
  buildBatchPayloadFrom,
29
+ canonicalAuthorRosterStatus,
29
30
  formatShareOutput,
30
31
  initShareForm,
31
32
  type LinkResult,
32
33
  relevantFields,
34
+ requiresCanonicalAuthorRoster,
33
35
  SHARE_MODES,
34
36
  type ShareFormPrefill,
35
37
  type ShareMode,
@@ -41,6 +43,7 @@ import {
41
43
  toPlainText,
42
44
  YOUTUBE_BUNDLE_PLACEMENTS,
43
45
  } from '../screens/social-share-data.js'
46
+ import { type ShareLinksData, useShareLinksData } from './SharePickers.js'
44
47
 
45
48
  // ---------------------------------------------------------------------------
46
49
  // Props
@@ -62,6 +65,8 @@ export interface ShareModalPrefill {
62
65
  export interface ShareModalProps {
63
66
  prefill: ShareModalPrefill
64
67
  onClose: () => void
68
+ allowInlineAuthorCreation?: boolean
69
+ shareLinksData?: ShareLinksData
65
70
  }
66
71
 
67
72
  // ---------------------------------------------------------------------------
@@ -79,7 +84,12 @@ const MODE_LABELS: Record<ShareMode, string> = {
79
84
  // ShareModal
80
85
  // ---------------------------------------------------------------------------
81
86
 
82
- export function ShareModal({ prefill, onClose }: ShareModalProps) {
87
+ export function ShareModal({
88
+ prefill,
89
+ onClose,
90
+ allowInlineAuthorCreation = true,
91
+ shareLinksData: suppliedShareLinksData,
92
+ }: ShareModalProps) {
83
93
  const initialPrefill: ShareFormPrefill = {
84
94
  destinationUrl: prefill.destinationUrl,
85
95
  contentSlug: prefill.contentSlug,
@@ -97,6 +107,23 @@ export function ShareModal({ prefill, onClose }: ShareModalProps) {
97
107
  const [submitError, setSubmitError] = useState<string | null>(null)
98
108
  const [output, setOutput] = useState<ShareOutput | null>(null)
99
109
  const [copied, setCopied] = useState(false)
110
+ const shouldVerifyAuthorRoster = requiresCanonicalAuthorRoster(
111
+ state.mode,
112
+ allowInlineAuthorCreation,
113
+ )
114
+ const fetchedShareLinksData = useShareLinksData(
115
+ !suppliedShareLinksData && !allowInlineAuthorCreation,
116
+ )
117
+ const shareLinksData = suppliedShareLinksData ?? fetchedShareLinksData
118
+ const authorRosterStatus = canonicalAuthorRosterStatus({
119
+ enabled: shouldVerifyAuthorRoster,
120
+ author: state.author,
121
+ authors: shareLinksData.authors,
122
+ loading: shareLinksData.loading,
123
+ error: shareLinksData.error,
124
+ })
125
+ const authorRosterFailure =
126
+ authorRosterStatus.kind === 'out-of-sync' || authorRosterStatus.kind === 'unavailable'
100
127
 
101
128
  const goBase = typeof window !== 'undefined' ? `${window.location.origin}/go` : '/go'
102
129
 
@@ -114,6 +141,11 @@ export function ShareModal({ prefill, onClose }: ShareModalProps) {
114
141
  setSubmitError(null)
115
142
  setOutput(null)
116
143
 
144
+ if (authorRosterStatus.blocked) {
145
+ setSubmitError(authorRosterStatus.message)
146
+ return
147
+ }
148
+
117
149
  const result = buildBatchPayloadFrom(state)
118
150
  if (!result.ok) {
119
151
  setSubmitError(result.error)
@@ -142,7 +174,7 @@ export function ShareModal({ prefill, onClose }: ShareModalProps) {
142
174
  setSubmitting(false)
143
175
  }
144
176
  },
145
- [state, goBase],
177
+ [state, goBase, authorRosterStatus],
146
178
  )
147
179
 
148
180
  const handleCopyAll = useCallback(() => {
@@ -353,22 +385,69 @@ export function ShareModal({ prefill, onClose }: ShareModalProps) {
353
385
  {/* Author ref (inline — simplified for the modal; full picker in the screen) */}
354
386
  {fields.includes('author') && (
355
387
  <div style={fieldGroup}>
356
- <label htmlFor="sm-author" className="field-label">
357
- Author display name
358
- </label>
359
- <input
360
- id="sm-author"
361
- type="text"
362
- className="input"
363
- value={state.author.displayName ?? ''}
364
- onChange={(e) =>
365
- dispatch({
366
- type: 'set-author',
367
- ref: { ...state.author, displayName: e.currentTarget.value, create: true },
368
- })
369
- }
370
- placeholder="Jane Smith"
371
- />
388
+ {allowInlineAuthorCreation ? (
389
+ <>
390
+ <label htmlFor="sm-author" className="field-label">
391
+ Author display name
392
+ </label>
393
+ <input
394
+ id="sm-author"
395
+ type="text"
396
+ className="input"
397
+ value={state.author.displayName ?? ''}
398
+ onChange={(e) =>
399
+ dispatch({
400
+ type: 'set-author',
401
+ ref: {
402
+ ...state.author,
403
+ displayName: e.currentTarget.value,
404
+ create: true,
405
+ },
406
+ })
407
+ }
408
+ placeholder="Jane Smith"
409
+ />
410
+ </>
411
+ ) : authorRosterFailure ? (
412
+ <div
413
+ role="alert"
414
+ style={{
415
+ padding: '10px 12px',
416
+ border: '1px solid color-mix(in srgb, var(--red) 25%, transparent)',
417
+ borderRadius: 'var(--radius-sm)',
418
+ color: 'var(--red)',
419
+ }}
420
+ >
421
+ {authorRosterStatus.message}
422
+ </div>
423
+ ) : state.author.id || state.author.slug || state.author.displayName ? (
424
+ <>
425
+ <div className="field-label">Canonical author</div>
426
+ <div className="input">
427
+ {state.author.displayName || state.author.slug || state.author.id}
428
+ </div>
429
+ {authorRosterStatus.kind === 'loading' && (
430
+ <div className="help" style={{ marginTop: 6 }}>
431
+ {authorRosterStatus.message}
432
+ </div>
433
+ )}
434
+ </>
435
+ ) : state.mode === 'author-social' ? (
436
+ <div
437
+ role="alert"
438
+ style={{
439
+ padding: '10px 12px',
440
+ border: '1px solid color-mix(in srgb, var(--red) 25%, transparent)',
441
+ borderRadius: 'var(--radius-sm)',
442
+ color: 'var(--red)',
443
+ }}
444
+ >
445
+ No canonical author is linked to this content. Add or publish the author in the
446
+ Authors screen, then retry.
447
+ </div>
448
+ ) : (
449
+ <div className="help">No author attribution selected (optional).</div>
450
+ )}
372
451
  </div>
373
452
  )}
374
453
 
@@ -514,7 +593,11 @@ export function ShareModal({ prefill, onClose }: ShareModalProps) {
514
593
  <button type="button" className="btn" onClick={onClose}>
515
594
  Cancel
516
595
  </button>
517
- <button type="submit" className="btn primary" disabled={submitting}>
596
+ <button
597
+ type="submit"
598
+ className="btn primary"
599
+ disabled={submitting || authorRosterStatus.blocked}
600
+ >
518
601
  <Icon name="share" size={14} />
519
602
  {submitting ? 'Minting…' : 'Mint link(s)'}
520
603
  </button>