HEX
Server: Apache/2
System: Linux cloudserver.ecpvn.com 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64
User: monspa (1053)
PHP: 7.4.33
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: /home/monspa/public_html/wp-content/plugins/really-simple-ssl/settings/src/Settings/Host/Host.js
import {useState, useEffect, memo} from "@wordpress/element";
import useFields from "../FieldsData";
import AutoCompleteControl from "../AutoComplete/AutoCompleteControl";
import useHostData from "./HostData";
import {__} from "@wordpress/i18n";

const Host = ({field, showDisabledWhenSaving=true}) => {
    const {updateField, setChangedField, saveFields, handleNextButtonDisabled} = useFields();
    const [disabled, setDisabled] = useState(false);
    const {fetchHosts, hosts, hostsLoaded} = useHostData();

    useEffect ( () => {

        if ( !hostsLoaded ) {
            fetchHosts();
        }
    }, []);

    useEffect(() => {
        handleNextButtonDisabled(disabled);
    }, [disabled]);

    const onChangeHandler = async (fieldValue) => {
        //force update, and get new fields.
        if (showDisabledWhenSaving) {
          setDisabled(true);
        }
        updateField(field.id, fieldValue);
        setChangedField(field.id, fieldValue);
        await saveFields(true, false);
        setDisabled(false);
    }

    let loadedHosts = hostsLoaded ? hosts : [];
    let options = [];
    let item = {
        label: __('Optional - Select your hosting provider.', 'really-simple-ssl'),
        value: '',
    };
    if ( field.value.length === 0 ) {
        options.push(item);
    }
    for (let key in loadedHosts) {
        if (loadedHosts.hasOwnProperty(key)) {
            let item = {};
            item.label = loadedHosts[key].name;
            item.value = key;
            options.push(item);
        }
    }

    return (
          <AutoCompleteControl
              className="rsssl-select"
              field={field}
              label={ field.label }
              onChange={ ( fieldValue ) => onChangeHandler(fieldValue) }
              value= { field.value }
              options={ options }
              disabled={disabled}
          />
    )
}
export default memo(Host);