Add duplicate link action with unique name prefill
This commit is contained in:
@@ -361,6 +361,27 @@ function AdminPage({
|
||||
});
|
||||
};
|
||||
|
||||
const startDuplicate = (link: LinkItem) => {
|
||||
const existingNames = new Set(orderedLinks.map((item) => item.name.toLowerCase()));
|
||||
const base = `${link.name} (copy)`;
|
||||
let candidate = base;
|
||||
let counter = 2;
|
||||
while (existingNames.has(candidate.toLowerCase())) {
|
||||
candidate = `${base} ${counter}`;
|
||||
counter += 1;
|
||||
}
|
||||
setEditingId(null);
|
||||
setFile(null);
|
||||
setForm({
|
||||
name: candidate,
|
||||
url: link.url,
|
||||
description: link.description,
|
||||
category: link.category,
|
||||
icon_url: link.icon_url ?? '',
|
||||
enabled: link.enabled,
|
||||
});
|
||||
};
|
||||
|
||||
const reset = () => {
|
||||
setEditingId(null);
|
||||
setFile(null);
|
||||
@@ -511,6 +532,7 @@ function AdminPage({
|
||||
<div className="flex gap-2">
|
||||
<button type="button" className="btn-subtle" onClick={() => moveBy(link.id, -1)} disabled={index === 0}>Up</button>
|
||||
<button type="button" className="btn-subtle" onClick={() => moveBy(link.id, 1)} disabled={index === orderedLinks.length - 1}>Down</button>
|
||||
<button type="button" className="btn-subtle" onClick={() => startDuplicate(link)}>Duplicate</button>
|
||||
<button type="button" className="btn-subtle" onClick={() => startEdit(link)}>Edit</button>
|
||||
<button type="button" className="btn-subtle" onClick={() => onDelete(link.id)}>Delete</button>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user