Skip to content

Commit d7e0ba7

Browse files
committed
update
1 parent 20239bc commit d7e0ba7

1 file changed

Lines changed: 21 additions & 1 deletion

File tree

src/App.jsx

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -412,6 +412,17 @@ function ExternalLinkIcon(props) {
412412
);
413413
}
414414

415+
function Toast({ message }) {
416+
if (!message) return null;
417+
return (
418+
<div className="fixed bottom-5 left-1/2 z-50 w-[min(520px,calc(100vw-2rem))] -translate-x-1/2">
419+
<div className="rounded-2xl border-4 border-zinc-900 bg-white px-4 py-3 text-sm font-semibold shadow-[8px_8px_0_0_#18181b]">
420+
{message}
421+
</div>
422+
</div>
423+
);
424+
}
425+
415426
function GitHubMarkIcon({ size = 28 }) {
416427
return (
417428
<svg
@@ -556,6 +567,7 @@ export default function GitHubPowerLinksGenerator() {
556567
const [builderError, setBuilderError] = useState("");
557568
const [builderCopiedKey, setBuilderCopiedKey] = useState("");
558569
const [searchCopiedKey, setSearchCopiedKey] = useState("");
570+
const [toastMessage, setToastMessage] = useState("");
559571

560572
const cleanUsername = parseUsername(username);
561573
const cleanRepo = parseRepo(repo);
@@ -644,7 +656,14 @@ export default function GitHubPowerLinksGenerator() {
644656
}, [profileLinks, repoLinks]);
645657

646658
async function copyAll() {
647-
await copyToClipboard(exportText);
659+
const ok = await copyToClipboard(exportText);
660+
if (ok) {
661+
setToastMessage("Copied all links as markdown.");
662+
setTimeout(() => setToastMessage(""), 1800);
663+
} else {
664+
setToastMessage("Copy failed (clipboard blocked by browser).");
665+
setTimeout(() => setToastMessage(""), 2400);
666+
}
648667
}
649668

650669
function handleModeChange(nextMode) {
@@ -758,6 +777,7 @@ export default function GitHubPowerLinksGenerator() {
758777

759778
return (
760779
<div className="min-h-screen bg-zinc-100 text-zinc-900">
780+
<Toast message={toastMessage} />
761781
<div className="mx-auto w-full max-w-[1700px] px-4 py-8 sm:px-6 lg:px-8">
762782
<div className="mb-8 rounded-3xl border-4 border-zinc-900 bg-white p-6 shadow-[8px_8px_0_0_#18181b]">
763783
<div className="flex items-center gap-3">

0 commit comments

Comments
 (0)