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;