diff --git a/Components/WizardSteps/WizardStep2/WizardStep2.js b/Components/WizardSteps/WizardStep2/WizardStep2.js index 1e24d66..98fe17d 100644 --- a/Components/WizardSteps/WizardStep2/WizardStep2.js +++ b/Components/WizardSteps/WizardStep2/WizardStep2.js @@ -3,24 +3,17 @@ import React from 'react'; import classes from '../WizardStep1/WizardStep1.module.css'; import { IconTool, IconAlertCircle } from '@tabler/icons-react'; import CopyButton from '../../UI/CopyButton/CopyButton'; +import lanCommandOption from '../../../helpers/functions/lanCommandOption'; function WizardStep2(props) { ////Vars + const wizardEnv = props.wizardEnv; + const UNIX_USER = wizardEnv.UNIX_USER; //Needed to generate command for borg over LAN instead of WAN if env vars are set and option enabled. - let HOSTNAME; - let SSH_SERVER_PORT; - let UNIX_USER = process.env.NEXT_PUBLIC_UNIX_USER; - if ( - props.selectedOption.lanCommand && - process.env.NEXT_PUBLIC_HOSTNAME_LAN && - process.env.NEXT_PUBLIC_SSH_SERVER_PORT_LAN - ) { - HOSTNAME = process.env.NEXT_PUBLIC_HOSTNAME_LAN; - SSH_SERVER_PORT = process.env.NEXT_PUBLIC_SSH_SERVER_PORT_LAN; - } else { - HOSTNAME = process.env.NEXT_PUBLIC_HOSTNAME; - SSH_SERVER_PORT = process.env.NEXT_PUBLIC_SSH_SERVER_PORT; - } + const { HOSTNAME, SSH_SERVER_PORT } = lanCommandOption( + wizardEnv, + props.selectedOption.lanCommand + ); return (
@@ -125,20 +118,17 @@ function WizardStep2(props) { connect :
  • - ECDSA :{' '} - {process.env.NEXT_PUBLIC_SSH_SERVER_FINGERPRINT_ECDSA} + ECDSA : {wizardEnv.SSH_SERVER_FINGERPRINT_ECDSA}
  • - ED25519 :{' '} - {process.env.NEXT_PUBLIC_SSH_SERVER_FINGERPRINT_ED25519} + ED25519 : {wizardEnv.SSH_SERVER_FINGERPRINT_ED25519}
  • - RSA :{' '} - {process.env.NEXT_PUBLIC_SSH_SERVER_FINGERPRINT_RSA} + RSA : {wizardEnv.SSH_SERVER_FINGERPRINT_RSA}
  • diff --git a/Components/WizardSteps/WizardStep3/WizardStep3.js b/Components/WizardSteps/WizardStep3/WizardStep3.js index ddf4c1d..f312d47 100644 --- a/Components/WizardSteps/WizardStep3/WizardStep3.js +++ b/Components/WizardSteps/WizardStep3/WizardStep3.js @@ -3,24 +3,17 @@ import React from 'react'; import classes from '../WizardStep1/WizardStep1.module.css'; import { IconChecks, IconPlayerPlay } from '@tabler/icons-react'; import CopyButton from '../../UI/CopyButton/CopyButton'; +import lanCommandOption from '../../../helpers/functions/lanCommandOption'; function WizardStep3(props) { ////Vars + const wizardEnv = props.wizardEnv; + const UNIX_USER = wizardEnv.UNIX_USER; //Needed to generate command for borg over LAN instead of WAN if env vars are set and option enabled. - let HOSTNAME; - let SSH_SERVER_PORT; - let UNIX_USER = process.env.NEXT_PUBLIC_UNIX_USER; - if ( - props.selectedOption.lanCommand && - process.env.NEXT_PUBLIC_HOSTNAME_LAN && - process.env.NEXT_PUBLIC_SSH_SERVER_PORT_LAN - ) { - HOSTNAME = process.env.NEXT_PUBLIC_HOSTNAME_LAN; - SSH_SERVER_PORT = process.env.NEXT_PUBLIC_SSH_SERVER_PORT_LAN; - } else { - HOSTNAME = process.env.NEXT_PUBLIC_HOSTNAME; - SSH_SERVER_PORT = process.env.NEXT_PUBLIC_SSH_SERVER_PORT; - } + const { HOSTNAME, SSH_SERVER_PORT } = lanCommandOption( + wizardEnv, + props.selectedOption.lanCommand + ); return (
    diff --git a/Components/WizardSteps/WizardStep4/WizardStep4.js b/Components/WizardSteps/WizardStep4/WizardStep4.js index ac937ee..85b30cb 100644 --- a/Components/WizardSteps/WizardStep4/WizardStep4.js +++ b/Components/WizardSteps/WizardStep4/WizardStep4.js @@ -3,24 +3,17 @@ import React from 'react'; import classes from '../WizardStep1/WizardStep1.module.css'; import { IconWand } from '@tabler/icons-react'; import CopyButton from '../../UI/CopyButton/CopyButton'; +import lanCommandOption from '../../../helpers/functions/lanCommandOption'; function WizardStep4(props) { ////Vars + const wizardEnv = props.wizardEnv; + const UNIX_USER = wizardEnv.UNIX_USER; //Needed to generate command for borg over LAN instead of WAN if env vars are set and option enabled. - let HOSTNAME; - let SSH_SERVER_PORT; - let UNIX_USER = process.env.NEXT_PUBLIC_UNIX_USER; - if ( - props.selectedOption.lanCommand && - process.env.NEXT_PUBLIC_HOSTNAME_LAN && - process.env.NEXT_PUBLIC_SSH_SERVER_PORT_LAN - ) { - HOSTNAME = process.env.NEXT_PUBLIC_HOSTNAME_LAN; - SSH_SERVER_PORT = process.env.NEXT_PUBLIC_SSH_SERVER_PORT_LAN; - } else { - HOSTNAME = process.env.NEXT_PUBLIC_HOSTNAME; - SSH_SERVER_PORT = process.env.NEXT_PUBLIC_SSH_SERVER_PORT; - } + const { HOSTNAME, SSH_SERVER_PORT } = lanCommandOption( + wizardEnv, + props.selectedOption.lanCommand + ); const configBorgmatic = `location: # List of source directories to backup. diff --git a/Containers/SetupWizard/SetupWizard.js b/Containers/SetupWizard/SetupWizard.js index 16dac1f..78e426d 100644 --- a/Containers/SetupWizard/SetupWizard.js +++ b/Containers/SetupWizard/SetupWizard.js @@ -20,6 +20,7 @@ function SetupWizard(props) { const [list, setList] = useState([]); const [listIsLoading, setListIsLoading] = useState(true); const [step, setStep] = useState(); + const [wizardEnv, setWizardEnv] = useState({}); const [selectedOption, setSelectedOption] = useState({ id: '#id', repository: 'repo', @@ -44,6 +45,21 @@ function SetupWizard(props) { } }; repoList(); + //Fetch wizardEnv to hydrate Wizard' steps + const fetchWizardEnv = async () => { + try { + const response = await fetch('/api/account/getWizardEnv', { + method: 'GET', + headers: { + 'Content-type': 'application/json', + }, + }); + setWizardEnv((await response.json()).wizardEnv); + } catch (error) { + console.log('Fetching datas error'); + } + }; + fetchWizardEnv(); }, []); //Component did update useEffect(() => { @@ -84,11 +100,26 @@ function SetupWizard(props) { if (step == 1) { return ; } else if (step == 2) { - return ; + return ( + + ); } else if (step == 3) { - return ; + return ( + + ); } else { - return ; + return ( + + ); } }; diff --git a/helpers/functions/lanCommandOption.js b/helpers/functions/lanCommandOption.js new file mode 100644 index 0000000..c546cbb --- /dev/null +++ b/helpers/functions/lanCommandOption.js @@ -0,0 +1,13 @@ +export default function lanCommandOption(wizardEnv, lanCommand) { + let HOSTNAME; + let SSH_SERVER_PORT; + if (lanCommand && wizardEnv.HOSTNAME_LAN && wizardEnv.SSH_SERVER_PORT_LAN) { + HOSTNAME = wizardEnv.HOSTNAME_LAN; + SSH_SERVER_PORT = wizardEnv.SSH_SERVER_PORT_LAN; + } else { + HOSTNAME = wizardEnv.HOSTNAME; + SSH_SERVER_PORT = wizardEnv.SSH_SERVER_PORT; + } + + return { HOSTNAME, SSH_SERVER_PORT }; +}