diff --git a/src/screens/Biometric/FaceRecognition/Section/Verify.jsx b/src/screens/Biometric/FaceRecognition/Section/Verify.jsx
index d8a0716..11ec051 100644
--- a/src/screens/Biometric/FaceRecognition/Section/Verify.jsx
+++ b/src/screens/Biometric/FaceRecognition/Section/Verify.jsx
@@ -78,203 +78,6 @@ const Verify = () => {
return () => window.removeEventListener('resize', handleResize);
}, []);
- const styles = {
- formGroup: {
- marginTop: '-45px',
- },
- selectWrapper: {
- position: 'relative',
- marginTop: '0',
- },
- select: {
- width: '100%',
- paddingRight: '30px',
- },
- chevronIcon: {
- position: 'absolute',
- right: '10px',
- top: '50%',
- transform: 'translateY(-50%)',
- pointerEvents: 'none',
- },
- remainingQuota: {
- display: 'flex',
- flexDirection: 'row',
- alignItems: 'center',
- marginTop: '4px',
- },
- quotaText: {
- fontSize: '40px',
- color: '#0542cc',
- fontWeight: '600',
- },
- timesText: {
- marginLeft: '8px',
- verticalAlign: 'super',
- fontSize: '20px',
- },
- uploadArea: {
- backgroundColor: '#e6f2ff',
- height: '250px',
- cursor: 'pointer',
- marginTop: '1rem',
- padding: '22px 10px 0 20px',
- display: 'flex',
- flexDirection: 'column',
- justifyContent: 'center',
- alignItems: 'center',
- border: '1px solid #ced4da',
- borderRadius: '0.25rem',
- },
- uploadIcon: {
- fontSize: '40px',
- color: '#0542cc',
- marginBottom: '7px',
- },
- uploadText: {
- color: '#1f2d3d',
- fontWeight: '400',
- fontSize: '16px',
- lineHeight: '13px',
- },
- wrapper: {
- border: '1px solid #ddd',
- borderRadius: '6px',
- padding: '18px 10px 0 8px', // Padding lebih seragam
- height: '13svh', // Tinggi lebih kecil untuk menyesuaikan tampilan
- display: 'flex',
- alignItems: 'center',
- justifyContent: 'space-between',
- backgroundColor: '#f9f9f9',
- overflow: 'hidden',
- },
- fileWrapper: {
- display: 'flex',
- alignItems: 'center',
- flex: '1',
- },
- textContainer: {
- flex: '1',
- fontSize: '16px', // Ukuran font lebih kecil
- marginLeft: '6px',
- overflow: 'hidden',
- whiteSpace: 'nowrap',
- textOverflow: 'ellipsis',
- marginTop: '1rem'
- },
- fileSize: {
- fontSize: '12px',
- color: '#555',
- marginBottom: '2rem',
- },
- closeButtonContainer: {
- display: 'flex',
- alignItems: 'center',
- marginLeft: 'auto',
- },
- closeButton: {
- background: 'transparent',
- border: 'none',
- cursor: 'pointer',
- padding: '0',
- },
- imageIcon: {
- color: '#0542cc',
- fontSize: '18px', // Ukuran ikon sedikit lebih kecil
- marginRight: '6px',
- },
- closeIcon: {
- color: 'red',
- fontSize: '18px',
- },
- submitButton: {
- marginLeft: 'auto',
- marginTop: '4rem',
- textAlign: 'start',
- position: 'relative',
- zIndex: 1,
- },
- uploadError: {
- color: 'red',
- fontSize: '12px',
- marginTop: '5px',
- },
- containerResultStyle: {
- padding: '20px',
- border: '1px solid #0053b3',
- borderRadius: '5px',
- width: '100%',
- maxWidth: '600px',
- margin: '20px auto',
- },
- resultContainer: {
- display: 'flex',
- alignItems: 'center',
- width: '100%',
- },
- tableStyle: {
- width: '60%',
- borderCollapse: 'collapse',
- },
- resultsTableMobile: {
- width: '100%',
- borderCollapse: 'collapse',
- fontSize: '14px',
- },
- resultsCell: {
- border: '0.1px solid gray',
- padding: '8px',
- },
- resultsValueCell: {
- border: '0.1px solid gray',
- padding: '8px',
- width: '60%',
- },
- imageContainer: {
- display: 'flex',
- flexDirection: 'column',
- alignItems: 'center',
- marginTop: isMobile ? '20px' : '0',
- },
- imageStyle: {
- width: '300px',
- height: '300px',
- borderRadius: '5px',
- objectFit: 'cover',
- },
- imageStyleMobile: {
- width: '100%',
- height: 'auto',
- },
- loadingOverlay: {
- position: 'fixed',
- top: 0,
- left: 0,
- right: 0,
- bottom: 0,
- backgroundColor: 'rgba(0, 0, 0, 0.2)',
- display: 'flex',
- flexDirection: 'column',
- justifyContent: 'center',
- alignItems: 'center',
- zIndex: 1000,
- },
- spinner: {
- border: '4px solid rgba(0, 0, 0, 0.1)',
- borderLeftColor: '#0542cc',
- borderRadius: '50%',
- width: '90px',
- height: '90px',
- animation: 'spin 1s ease-in-out infinite',
- },
- loadingText: {
- marginTop: '10px',
- fontSize: '1.2rem',
- color: '#fff',
- textAlign: 'center',
- },
- };
-
const handleApplicationChange = async (selectedOption) => {
if (!selectedOption) {
console.error("Selected option is undefined");
@@ -325,35 +128,23 @@ const Verify = () => {
}
};
-
- const handleFocus = () => {
- setIsSelectOpen(true);
- };
-
- const handleBlur = () => {
- setIsSelectOpen(false);
- };
-
const handleImageUpload = (file) => {
- // Ensure file exists before accessing its properties
- if (!file) {
- console.error('File is undefined');
- setUploadError('Please upload a valid image file.');
- return;
- }
-
- const fileExtension = file.name.split('.').pop().toUpperCase();
- if (fileTypes.includes(fileExtension)) {
- setSelectedImageName(file.name);
- setFile(file);
- setUploadError(''); // Clear any previous errors
+ // Ensure the file is not undefined or null before accessing its properties
+ if (file && file.name) {
+ const fileExtension = file.name.split('.').pop().toUpperCase();
+ if (fileTypes.includes(fileExtension)) {
+ setSelectedImageName(file.name);
+ setFile(file);
+ setUploadError(''); // Clear any previous errors
+ } else {
+ alert('Image format is not supported');
+ setUploadError('Image format is not supported');
+ setFile(null);
+ }
} else {
- // Show an alert if the file type is not supported
- alert('Image format is not supported');
- setUploadError('Image format is not supported'); // Optionally set error message to display on the UI
- setFile(null); // Optionally clear the selected file
+ console.error('No file selected or invalid file object.');
}
- };
+ };
const handleImageCancel = () => {
@@ -509,6 +300,295 @@ const Verify = () => {
}
};
+ const styles = {
+ formGroup: {
+ marginTop: '-45px',
+ },
+ selectWrapper: {
+ position: 'relative',
+ marginTop: '0',
+ },
+ select: {
+ width: '100%',
+ paddingRight: '30px',
+ },
+ chevronIcon: {
+ position: 'absolute',
+ right: '10px',
+ top: '50%',
+ transform: 'translateY(-50%)',
+ pointerEvents: 'none',
+ },
+ remainingQuota: {
+ display: 'flex',
+ flexDirection: 'row',
+ alignItems: 'center',
+ marginTop: '4px',
+ },
+ quotaText: {
+ fontSize: '40px',
+ color: '#0542cc',
+ fontWeight: '600',
+ },
+ timesText: {
+ marginLeft: '8px',
+ verticalAlign: 'super',
+ fontSize: '20px',
+ },
+ uploadArea: {
+ backgroundColor: '#e6f2ff',
+ height: '250px',
+ cursor: 'pointer',
+ marginTop: '1rem',
+ paddingTop: '22px',
+ display: 'flex',
+ flexDirection: 'column',
+ justifyContent: 'center',
+ alignItems: 'center',
+ border: '1px solid #ced4da',
+ borderRadius: '0.25rem',
+ },
+ uploadAreaMobile: {
+ backgroundColor: '#e6f2ff',
+ height: '50svh', // Use viewport height for a more responsive size
+ cursor: 'pointer',
+ marginTop: '1rem',
+ paddingTop: '18px',
+ display: 'flex',
+ flexDirection: 'column',
+ justifyContent: 'center',
+ alignItems: 'center',
+ border: '1px solid #ced4da',
+ borderRadius: '0.25rem',
+ padding: '20px',
+ },
+ uploadIcon: {
+ fontSize: '40px',
+ color: '#0542cc',
+ marginBottom: '7px',
+ },
+ uploadText: {
+ color: '#1f2d3d',
+ fontWeight: '400',
+ fontSize: '16px',
+ lineHeight: '13px',
+ },
+ wrapper: {
+ border: '1px solid #ddd',
+ borderRadius: '6px',
+ padding: '18px 10px 0 8px',
+ height: '13svh',
+ display: 'flex',
+ alignItems: 'center',
+ justifyContent: 'space-between',
+ backgroundColor: '#f9f9f9',
+ overflow: 'hidden',
+ },
+ fileWrapper: {
+ display: 'flex',
+ alignItems: 'center',
+ flex: '1',
+ },
+ textContainer: {
+ flex: '1',
+ fontSize: '16px',
+ marginLeft: '6px',
+ overflow: 'hidden',
+ whiteSpace: 'nowrap',
+ textOverflow: 'ellipsis',
+ marginTop: '1rem',
+ },
+ fileSize: {
+ fontSize: '12px',
+ color: '#555',
+ marginBottom: '2rem',
+ },
+ closeButtonContainer: {
+ display: 'flex',
+ alignItems: 'center',
+ marginLeft: 'auto',
+ },
+ closeButton: {
+ background: 'transparent',
+ border: 'none',
+ cursor: 'pointer',
+ padding: '0',
+ },
+ imageIcon: {
+ color: '#0542cc',
+ fontSize: '18px',
+ marginRight: '6px',
+ },
+ closeIcon: {
+ color: 'red',
+ fontSize: '18px',
+ },
+ submitButton: {
+ marginLeft: 'auto',
+ marginTop: '4rem',
+ textAlign: 'start',
+ position: 'relative',
+ zIndex: 1,
+ },
+ uploadError: {
+ color: 'red',
+ fontSize: '12px',
+ marginTop: '5px',
+ },
+ containerResultStyle: {
+ padding: '20px',
+ border: '1px solid #0053b3',
+ borderRadius: '5px',
+ width: '100%',
+ margin: '20px auto',
+ },
+ resultContainer: {
+ display: 'flex',
+ justifyContent: 'space-between',
+ alignItems: 'flex-start',
+ flexDirection: 'row',
+ width: '100%',
+ flexWrap: 'wrap', // Allow wrapping on smaller screens
+ },
+ resultsTable: {
+ width: '60%',
+ borderCollapse: 'collapse',
+ },
+ resultsTableMobile: {
+ width: '100%',
+ borderCollapse: 'collapse',
+ },
+ resultsCell: {
+ padding: '8px',
+ width: '30%',
+ fontSize: '16px',
+ },
+ resultsValueCell: {
+ padding: '8px',
+ width: '70%',
+ fontSize: '16px',
+ color: 'red',
+ },
+ resultsTrueValue: {
+ color: 'inherit',
+ },
+ imageContainer: {
+ display: 'flex',
+ flexDirection: 'column',
+ alignItems: 'flex-start',
+ width: '100%',
+ marginTop: '20px',
+ },
+ imageStyle: {
+ width: isMobile ? '200px' : '320px', // 200px for mobile, 320px for larger screens
+ height: isMobile ? '200px' : '320px',
+ borderRadius: '5px',
+ objectFit: 'cover', // Ensures the image fits within the specified dimensions
+ },
+ imageStyleMobile: {
+ width: '100%',
+ height: 'auto',
+ borderRadius: '5px',
+ },
+ imageDetails: {
+ marginTop: '10px',
+ fontSize: '16px',
+ color: '#1f2d3d',
+ },
+ loadingOverlay: {
+ position: 'fixed',
+ top: 0,
+ left: 0,
+ right: 0,
+ bottom: 0,
+ backgroundColor: 'rgba(0, 0, 0, 0.2)',
+ display: 'flex',
+ flexDirection: 'column',
+ justifyContent: 'center',
+ alignItems: 'center',
+ zIndex: 1000,
+ },
+ spinner: {
+ border: '4px solid rgba(0, 0, 0, 0.1)',
+ borderLeftColor: '#0542cc',
+ borderRadius: '50%',
+ width: '90px',
+ height: '90px',
+ animation: 'spin 1s ease-in-out infinite',
+ },
+ loadingText: {
+ marginTop: '10px',
+ fontSize: '1.2rem',
+ color: '#fff',
+ textAlign: 'center',
+ },
+ uploadedFileWrapper: {
+ backgroundColor: '#fff',
+ border: '0.2px solid gray',
+ padding: '15px 0 0 17px',
+ borderRadius: '5px',
+ display: 'flex',
+ alignItems: 'center',
+ gap: '10px',
+ justifyContent: 'space-between',
+ },
+ uploadedFileInfo: {
+ marginRight: '18rem',
+ marginTop: '0.2rem',
+ },
+ uploadedFileText: {
+ fontSize: '16px',
+ color: '#1f2d3d',
+ },
+ customLabel: {
+ fontWeight: 600,
+ fontSize: '14px',
+ color: '#212529',
+ },
+ responsiveImageStyle: {
+ width: '100%',
+ maxHeight: '250px',
+ objectFit: 'cover',
+ marginTop: '20px',
+ },
+ responsiveResultContainer: {
+ padding: '1rem',
+ border: '1px solid #ccc',
+ borderRadius: '8px',
+ marginTop: '20px',
+ },
+ responsiveImageContainer: {
+ marginTop: '20px',
+ textAlign: 'center',
+ },
+ responsiveSubmitButton: {
+ marginTop: '1rem',
+ },
+ responsiveLoadingOverlay: {
+ position: 'absolute',
+ top: '0',
+ left: '0',
+ width: '100%',
+ height: '100%',
+ backgroundColor: 'rgba(0,0,0,0.5)',
+ display: 'flex',
+ justifyContent: 'center',
+ alignItems: 'center',
+ zIndex: '10',
+ },
+ responsiveSpinner: {
+ border: '4px solid #f3f3f3',
+ borderTop: '4px solid #3498db',
+ borderRadius: '50%',
+ width: '50px',
+ height: '50px',
+ animation: 'spin 2s linear infinite',
+ },
+ responsiveLoadingText: {
+ color: 'white',
+ marginTop: '10px',
+ },
+ };
return (
@@ -533,16 +613,16 @@ const Verify = () => {
{applicationError &&
{applicationError}}
@@ -559,166 +639,145 @@ const Verify = () => {
- {/* Subject ID Input */}
-
-
-
-
-
-
-
-
- {thresholdError && {thresholdError}}
-
-
-
-
- {/* Upload Section */}
+ {/* Subject ID Input */}
+
-
-
- Upload Face Photo
-
-
handleImageUpload(files[0])}
- children={
-
+
+
+
+
+
+
- {uploadError && {uploadError}}
+ {thresholdError && {thresholdError}}
-
- {/* Display uploaded image name */}
- {selectedImageName && (
-
-
-
-
-
Uploaded File:
-
{selectedImageName}
- {file && (
-
- Size: {formatFileSize(file.size)}
-
- )}
-
-
-
-
+
+
+ {/* Upload Section */}
+
+
+
+ Upload Face Photo
+
+
handleImageUpload(files[0])}
+ children={
+
-
- )}
-
- {/* Submit Button */}
-
-
+
+
+ {/* Display uploaded image name */}
+ {selectedImageName && (
+
+
File: {selectedImageName}
+ {file && (
+
+ Size: {formatFileSize(file.size)}
+
+ )}
+
+ )}
+ {errorMessage &&
{errorMessage}}
- {/* Results Section */}
- {showResult && (
-
-
Results
-
-
-
-
- Similarity |
-
- {verified !== null ? (verified ? 'True' : 'False') : 'N/A'}
- |
-
-
-
+ {/* Submit Button */}
+
-
-

-
- File Name: {selectedImageName}
-
-
+ {/* Results Section */}
+ {showResult && (
+
+
Results
+
+
+
+
+ Similarity |
+
+ {verified !== null ? (verified ? 'True' : 'False') : 'N/A'}
+ |
+
+
+
+
+
+

+
+ File Name: {selectedImageName}
+
- )}
+
+ )}
);
+
}
export default Verify;
diff --git a/src/screens/Biometric/OcrKtp/Verify.jsx b/src/screens/Biometric/OcrKtp/Verify.jsx
index 06fa901..b55dde1 100644
--- a/src/screens/Biometric/OcrKtp/Verify.jsx
+++ b/src/screens/Biometric/OcrKtp/Verify.jsx
@@ -27,6 +27,7 @@ const Verify = () => {
const [data, setData] = useState(null);
const [showResult, setShowResult] = useState(false);
const [inputValueApplication, setInputValueApplication] = useState('');
+ const [selectedQuota, setSelectedQuota] = useState(0);
// Validation state
const [validationErrors, setValidationErrors] = useState({
@@ -87,7 +88,14 @@ const Verify = () => {
};
const handleApplicationChange = (selectedOption) => {
+ const selectedId = selectedOption.value;
+ const selectedApp = applicationIds.find(app => app.id === parseInt(selectedId));
+
setApplicationId(selectedOption ? selectedOption.value : '');
+
+ if (selectedApp) {
+ setSelectedQuota(selectedApp.quota);
+ }
};
const applicationOptions = applicationIds.map(app => ({
@@ -220,8 +228,6 @@ const Verify = () => {
}
};
-
-
// The fetchImage function you already have in your code
const fetchImage = async (imageFileName) => {
setIsLoading(true);
@@ -257,6 +263,132 @@ const Verify = () => {
}
};
+
+ const styles = {
+ selectWrapper: {
+ position: 'relative',
+ display: 'inline-block',
+ width: '100%',
+ },
+ select: {
+ fontSize: '16px',
+ padding: '10px',
+ width: '100%',
+ borderRadius: '4px',
+ border: '1px solid #ccc',
+ },
+ remainingQuota: {
+ display: 'flex',
+ alignItems: 'center',
+ },
+ quotaText: {
+ fontSize: '24px',
+ fontWeight: '600',
+ },
+ timesText: {
+ fontSize: '16px',
+ fontWeight: '300',
+ },
+ customLabel: {
+ fontSize: '18px',
+ fontWeight: '600',
+ color: '#1f2d3d',
+ },
+ uploadWrapper: {
+ marginTop: '1rem',
+ },
+ uploadArea: {
+ backgroundColor: '#e6f2ff',
+ height: !isMobile? '30svh' : '50svh',
+ cursor: 'pointer',
+ marginTop: '1rem',
+ paddingTop: '22px',
+ display: 'flex',
+ flexDirection: 'column',
+ justifyContent: 'center',
+ alignItems: 'center',
+ border: '1px solid #ced4da',
+ borderRadius: '0.25rem',
+ textAlign: 'center',
+ },
+ uploadIcon: {
+ fontSize: '40px',
+ color: '#0542cc',
+ marginBottom: '10px',
+ },
+ uploadText: {
+ color: '#1f2d3d',
+ fontWeight: '400',
+ fontSize: '16px',
+ },
+ browseLink: {
+ color: '#0542cc',
+ textDecoration: 'none',
+ fontWeight: 'bold',
+ },
+ uploadError: {
+ color: 'red',
+ fontSize: '12px',
+ marginTop: '10px',
+ },
+ errorContainer: {
+ marginTop: '10px',
+ padding: '10px',
+ backgroundColor: '#f8d7da',
+ border: '1px solid #f5c6cb',
+ borderRadius: '4px',
+ },
+ errorText: {
+ color: '#721c24',
+ fontSize: '14px',
+ margin: '0',
+ },loadingOverlay: {
+ position: 'fixed', // Gunakan fixed untuk overlay penuh layar
+ top: 0,
+ left: 0,
+ right: 0,
+ bottom: 0, // Pastikan menutupi seluruh layar
+ display: 'flex',
+ justifyContent: 'center', // Posisikan spinner di tengah secara horizontal
+ alignItems: 'center', // Posisikan spinner di tengah secara vertikal
+ backgroundColor: 'rgba(0, 0, 0, 0.5)', // Semitransparan di background
+ color: 'white',
+ fontSize: '24px',
+ zIndex: 1000, // Pastikan overlay muncul di atas konten lainnya
+ },
+ spinner: {
+ border: '4px solid #f3f3f3', // Border gray untuk spinner
+ borderTop: '4px solid #3498db', // Border biru untuk spinner
+ borderRadius: '50%', // Membuat spinner bulat
+ width: '50px', // Ukuran spinner
+ height: '50px', // Ukuran spinner
+ animation: 'spin 2s linear infinite', // Menambahkan animasi spin
+ },
+ loadingText: {
+ marginLeft: '20px',
+ },
+ tableStyle: {
+ width: '100%',
+ borderCollapse: 'collapse',
+ marginTop: '20px',
+ },
+ tableCell: {
+ padding: '8px 15px',
+ border: '1px solid #ccc',
+ textAlign: 'left',
+ },
+ };
+
+ const formatFileSize = (sizeInBytes) => {
+ if (sizeInBytes < 1024) {
+ return `${sizeInBytes} bytes`; // Jika ukuran lebih kecil dari 1 KB
+ } else if (sizeInBytes < 1048576) {
+ return `${(sizeInBytes / 1024).toFixed(2)} KB`; // Jika ukuran lebih kecil dari 1 MB
+ } else {
+ return `${(sizeInBytes / 1048576).toFixed(2)} MB`; // Jika ukuran lebih besar dari 1 MB
+ }
+ };
+
return (
{/* Inject keyframes for the spinner */}
@@ -315,11 +447,11 @@ const Verify = () => {
{validationErrors.applicationId &&
{validationErrors.applicationId}
}
-
+
Remaining Quota
- 0
+ {selectedQuota}
(times)
@@ -362,6 +494,11 @@ const Verify = () => {
{selectedImageName && (
File: {selectedImageName}
+ {file && (
+
+ Size: {formatFileSize(file.size)}
+
+ )}
@@ -477,117 +614,3 @@ const Verify = () => {
export default Verify;
-const styles = {
- selectWrapper: {
- position: 'relative',
- display: 'inline-block',
- width: '100%',
- },
- select: {
- fontSize: '16px',
- padding: '10px',
- width: '100%',
- borderRadius: '4px',
- border: '1px solid #ccc',
- },
- remainingQuota: {
- display: 'flex',
- alignItems: 'center',
- },
- quotaText: {
- fontSize: '24px',
- fontWeight: '600',
- },
- timesText: {
- fontSize: '16px',
- fontWeight: '300',
- },
- customLabel: {
- fontSize: '18px',
- fontWeight: '600',
- color: '#1f2d3d',
- },
- uploadWrapper: {
- marginTop: '1rem',
- },
- uploadArea: {
- backgroundColor: '#e6f2ff',
- height: '58svh',
- cursor: 'pointer',
- marginTop: '1rem',
- paddingTop: '22px',
- display: 'flex',
- flexDirection: 'column',
- justifyContent: 'center',
- alignItems: 'center',
- border: '1px solid #ced4da',
- borderRadius: '0.25rem',
- textAlign: 'center',
- },
- uploadIcon: {
- fontSize: '40px',
- color: '#0542cc',
- marginBottom: '10px',
- },
- uploadText: {
- color: '#1f2d3d',
- fontWeight: '400',
- fontSize: '16px',
- },
- browseLink: {
- color: '#0542cc',
- textDecoration: 'none',
- fontWeight: 'bold',
- },
- uploadError: {
- color: 'red',
- fontSize: '12px',
- marginTop: '10px',
- },
- errorContainer: {
- marginTop: '10px',
- padding: '10px',
- backgroundColor: '#f8d7da',
- border: '1px solid #f5c6cb',
- borderRadius: '4px',
- },
- errorText: {
- color: '#721c24',
- fontSize: '14px',
- margin: '0',
- },loadingOverlay: {
- position: 'fixed', // Gunakan fixed untuk overlay penuh layar
- top: 0,
- left: 0,
- right: 0,
- bottom: 0, // Pastikan menutupi seluruh layar
- display: 'flex',
- justifyContent: 'center', // Posisikan spinner di tengah secara horizontal
- alignItems: 'center', // Posisikan spinner di tengah secara vertikal
- backgroundColor: 'rgba(0, 0, 0, 0.5)', // Semitransparan di background
- color: 'white',
- fontSize: '24px',
- zIndex: 1000, // Pastikan overlay muncul di atas konten lainnya
- },
- spinner: {
- border: '4px solid #f3f3f3', // Border gray untuk spinner
- borderTop: '4px solid #3498db', // Border biru untuk spinner
- borderRadius: '50%', // Membuat spinner bulat
- width: '50px', // Ukuran spinner
- height: '50px', // Ukuran spinner
- animation: 'spin 2s linear infinite', // Menambahkan animasi spin
- },
- loadingText: {
- marginLeft: '20px',
- },
- tableStyle: {
- width: '100%',
- borderCollapse: 'collapse',
- marginTop: '20px',
- },
- tableCell: {
- padding: '8px 15px',
- border: '1px solid #ccc',
- textAlign: 'left',
- },
-};