From a2fffec37cc6489896bfa629e18308e29f62cf8f Mon Sep 17 00:00:00 2001 From: Aleix Soler Date: Wed, 18 Mar 2026 15:07:31 +0100 Subject: [PATCH] feat: add author attribution support to status templates UI --- components/SettingsUI/TemplateEditorModal.tsx | 28 +++++++++++++++++++ components/SettingsUI/TemplateItem.tsx | 20 ++++++++++++- styles/components/template-settings.css | 17 +++++++++++ types/pluginSettings.ts | 2 ++ 4 files changed, 66 insertions(+), 1 deletion(-) diff --git a/components/SettingsUI/TemplateEditorModal.tsx b/components/SettingsUI/TemplateEditorModal.tsx index ab05d0c..f758fb3 100644 --- a/components/SettingsUI/TemplateEditorModal.tsx +++ b/components/SettingsUI/TemplateEditorModal.tsx @@ -18,6 +18,8 @@ export const TemplateEditorModal: React.FC = ({ }) => { const [name, setName] = useState(template?.name || ""); const [description, setDescription] = useState(template?.description || ""); + const [author, setAuthor] = useState(template?.author || ""); + const [github, setGithub] = useState(template?.github || ""); const [statuses, setStatuses] = useState( template?.statuses || [ { @@ -52,6 +54,8 @@ export const TemplateEditorModal: React.FC = ({ id: templateId, name: name.trim(), description: description.trim(), + author: author.trim() || undefined, + github: github.trim() || undefined, statuses: statusesWithTemplateId, }; @@ -145,6 +149,30 @@ export const TemplateEditorModal: React.FC = ({ /> + + + + + + + + = ({ )}
- {template.description}: + {template.description} + {(template.author || template.github) && ( +
+ By{" "} + {template.github ? ( + e.stopPropagation()} + > + {template.author || + template.github.split("/").pop()} + + ) : ( + {template.author} + )} +
+ )}
{template.statuses.map((status, index) => ( diff --git a/styles/components/template-settings.css b/styles/components/template-settings.css index 516115a..235484c 100644 --- a/styles/components/template-settings.css +++ b/styles/components/template-settings.css @@ -229,6 +229,23 @@ transform: none; } +.template-author-info { + display: block; + font-size: var(--font-ui-smaller); + color: var(--text-muted); + margin-top: var(--size-2-1); + font-style: italic; +} + +.template-author-info a { + color: var(--text-accent); + text-decoration: none; +} + +.template-author-info a:hover { + text-decoration: underline; +} + /* Responsive Design */ @media (max-width: 768px) { .template-settings-actions { diff --git a/types/pluginSettings.ts b/types/pluginSettings.ts index 619552e..a00d335 100644 --- a/types/pluginSettings.ts +++ b/types/pluginSettings.ts @@ -19,6 +19,8 @@ export interface StatusTemplate { id: string; name: string; description: string; + author?: string; + github?: string; statuses: NoteStatus[]; }