File size: 2,801 Bytes
5372a29 1038d6b |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
import React, { Ref } from 'react';
import type { Mode } from '../types';
import { FaRedo, FaSave, FaSignInAlt, FaSignOutAlt } from 'react-icons/fa';
interface UpdateRefreshDataModeProps {
mode: Mode;
saveRef: Ref<HTMLButtonElement>;
onFetch: () => void;
onSave: () => void;
onLogin: () => void;
onLogout: () => void;
isMobile: boolean
}
const UpdateRefreshDataMode: React.FC<UpdateRefreshDataModeProps> = ({ mode, saveRef, onFetch, onSave, onLogin, onLogout, isMobile }) => {
return (
<>
<div className={`flex justify-between items-center gap-10 ${isMobile ? "flex-col" : ""}`}>
<button
onClick={onFetch}
className={`flex items-center justify-center px-6 py-3 border border-transparent text-sm font-medium rounded-md text-white bg-indigo-600 hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-gray-900 focus:ring-indigo-500 transition-transform transform hover:scale-105`}
>
<FaRedo className="h-4 w-4 mr-2" />
Refresh
</button>
{mode === "controller" &&
<button
ref={saveRef}
onClick={onSave}
className={`flex items-center justify-center px-6 py-3 border border-transparent text-sm font-medium rounded-md text-white bg-indigo-600 hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-gray-900 focus:ring-indigo-500 transition-transform transform hover:scale-105`}
>
<FaSave className="h-4 w-4 mr-2" />
Save
</button>
}
<button
onClick={mode === "preview" ? onLogin : onLogout}
className={`flex items-center justify-center px-6 py-3 border border-transparent text-sm font-medium rounded-md text-white bg-indigo-600 hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-gray-900 focus:ring-indigo-500 transition-transform transform hover:scale-105`}
>
{mode === "preview" ? (
<>
<FaSignInAlt className="h-4 w-4 mr-2" />
Login
</>
) : (
<>
<FaSignOutAlt className="h-4 w-4 mr-2" />
Logout
</>
)}
</button>
</div>
</>
)
}
export default UpdateRefreshDataMode; |