feat(admin): drop ShareButton and View Public Site from header
This commit is contained in:
@@ -10,7 +10,6 @@ import StatsGrid from '@/components/admin/StatsGrid';
|
||||
import SettingsSection from '@/components/admin/SettingsSection';
|
||||
import WishlistCard from '@/components/admin/WishlistCard';
|
||||
import CreateWishlistModal from '@/components/admin/CreateWishlistModal';
|
||||
import ShareButton from '@/components/share-button';
|
||||
|
||||
export default function AdminPage() {
|
||||
return (
|
||||
@@ -143,17 +142,6 @@ function AdminPageContent() {
|
||||
subtitle="Manage your wishlists and items"
|
||||
actions={
|
||||
<>
|
||||
<ShareButton
|
||||
title="Check out my wishlist site!"
|
||||
text="I wanted to share my wishlist site with you."
|
||||
url="https://wishlist.tieso.co/"
|
||||
/>
|
||||
<Link
|
||||
href="/"
|
||||
className="inline-flex items-center px-6 py-3 border-2 border-indigo-600 dark:border-indigo-500 text-base font-semibold rounded-lg text-indigo-600 dark:text-indigo-400 bg-white dark:bg-gray-800 hover:bg-indigo-50 dark:hover:bg-gray-700 transition-all"
|
||||
>
|
||||
View Public Site
|
||||
</Link>
|
||||
<Link
|
||||
href="/admin/guests"
|
||||
className="inline-flex items-center px-6 py-3 border-2 border-indigo-600 dark:border-indigo-500 text-base font-semibold rounded-lg text-indigo-600 dark:text-indigo-400 bg-white dark:bg-gray-800 hover:bg-indigo-50 dark:hover:bg-gray-700 transition-all"
|
||||
|
||||
@@ -1,79 +0,0 @@
|
||||
'use client';
|
||||
|
||||
import { useState } from 'react';
|
||||
|
||||
interface ShareButtonProps {
|
||||
title?: string;
|
||||
text?: string;
|
||||
url?: string;
|
||||
className?: string;
|
||||
}
|
||||
|
||||
export default function ShareButton({
|
||||
title = 'Veja a lista do chá de bebê!',
|
||||
text = 'Dê uma olhada na lista de presentes do chá de bebê.',
|
||||
url,
|
||||
className = ''
|
||||
}: ShareButtonProps) {
|
||||
const [isSupported, setIsSupported] = useState(true);
|
||||
|
||||
const handleShare = async () => {
|
||||
// Use current URL if not provided
|
||||
const shareUrl = url || window.location.href;
|
||||
|
||||
// Check if Web Share API is supported
|
||||
if (!navigator.share) {
|
||||
setIsSupported(false);
|
||||
// Fallback: copy to clipboard
|
||||
try {
|
||||
await navigator.clipboard.writeText(shareUrl);
|
||||
alert('Link copiado!');
|
||||
} catch (err) {
|
||||
console.error('Failed to copy:', err);
|
||||
alert('Não foi possível compartilhar');
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
await navigator.share({
|
||||
title,
|
||||
text,
|
||||
url: shareUrl,
|
||||
});
|
||||
} catch (err: any) {
|
||||
// User cancelled or share failed
|
||||
if (err.name !== 'AbortError') {
|
||||
console.error('Error sharing:', err);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
if (!isSupported && typeof window !== 'undefined' && !navigator.clipboard) {
|
||||
// Don't show button if neither share nor clipboard is supported
|
||||
return null;
|
||||
}
|
||||
|
||||
return (
|
||||
<button
|
||||
onClick={handleShare}
|
||||
className={`inline-flex items-center px-6 py-3 border-2 border-indigo-600 dark:border-indigo-500 text-base font-semibold rounded-lg text-indigo-600 dark:text-indigo-400 bg-white dark:bg-gray-800 hover:bg-indigo-50 dark:hover:bg-gray-700 transition-all cursor-pointer ${className}`}
|
||||
title="Compartilhar"
|
||||
>
|
||||
<svg
|
||||
className="w-5 h-5 mr-2"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
viewBox="0 0 24 24"
|
||||
>
|
||||
<path
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
strokeWidth={2}
|
||||
d="M8.684 13.342C8.886 12.938 9 12.482 9 12c0-.482-.114-.938-.316-1.342m0 2.684a3 3 0 110-2.684m0 2.684l6.632 3.316m-6.632-6l6.632-3.316m0 0a3 3 0 105.367-2.684 3 3 0 00-5.367 2.684zm0 9.316a3 3 0 105.368 2.684 3 3 0 00-5.368-2.684z"
|
||||
/>
|
||||
</svg>
|
||||
Compartilhar
|
||||
</button>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user