import { useForm, usePage } from '@inertiajs/react';
import { Flag } from 'lucide-react';
import type { ReactNode } from 'react';
import { useId, useState } from 'react';
import { store } from '@/actions/App/Http/Controllers/CommitReportController';
import {
ImageDropOverlay,
ImagePickerButton,
ImagePickerPreviews,
imageErrorFrom,
useImagePreviewCleanup,
} from '@/components/commit-image-picker';
import InputError from '@/components/input-error';
import { Button } from '@/components/ui/button';
import {
Dialog,
DialogClose,
DialogContent,
DialogDescription,
DialogFooter,
DialogHeader,
DialogTitle,
DialogTrigger,
} from '@/components/ui/dialog';
import {
Tooltip,
TooltipContent,
TooltipTrigger,
} from '@/components/ui/tooltip';
import { useCommitNotFound } from '@/hooks/use-deleted-resources';
import { useImageAttachments } from '@/hooks/use-image-attachments';
import type { Commit } from '@/types';
const reasons = [
['spam', 'Spam or misleading links'],
['harassment', 'Harassment or hate'],
['unsafe', 'Harmful or private information'],
['other', 'Something else'],
];
export function useCanReport(commit: Commit): boolean {
const { auth } = usePage().props;
return (
auth.user !== null &&
commit.status === 'approved' &&
commit.user_id !== auth.user.id
);
}
export function CommitReportButton({ commit }: { commit: Commit }) {
const [open, setOpen] = useState(false);
if (!useCanReport(commit)) {
return null;
}
return (
{commit.body}
> ); }