pmtool / src /components /attendance /upload-attendance-button.tsx
devarshia5's picture
Upload 487 files
d97b8f9 verified
Raw
History Blame Contribute Delete
1.2 kB
import React from 'react';
import { Button } from '@/components/ui/button';
import { FileIcon, Loader2 } from 'lucide-react';
import useFileUpload from '@/hooks/use-file-upload';
interface UploadAttendanceButtonProps {
onFileSelected: (file: File) => void;
}
const UploadAttendanceButton: React.FC<UploadAttendanceButtonProps> = ({ onFileSelected }) => {
const {
fileInputRef,
isSelecting,
triggerFileSelect,
handleFileChange
} = useFileUpload({
acceptedTypes: ['.xlsx', '.xls', '.csv'],
maxSizeMB: 10,
onFileSelected
});
return (
<>
<input
type="file"
ref={fileInputRef}
onChange={handleFileChange}
accept=".xlsx,.xls,.csv"
className="hidden"
/>
<Button
variant="default"
className="flex items-center gap-2"
onClick={triggerFileSelect}
disabled={isSelecting}
>
{isSelecting ? (
<Loader2 className="h-4 w-4 animate-spin" />
) : (
<FileIcon className="h-4 w-4" />
)}
Parse Excel File
</Button>
</>
);
};
export default UploadAttendanceButton;