function Configuration()

in src/main/js/routes/layout/configuration.js [4:63]


function Configuration({loadedVespaState}) {
    function clusterRoutingConfigurationMap() {
        const initialState = new Map();
        loadedVespaState
            .container
            .clusters
            .forEach(cluster => {
                // const clusterName = cluster.name
                const routingSearchParameterName = routingSearchParamName(cluster.name)
                if (searchParams.has(routingSearchParameterName)) {
                    initialState.set(cluster.name, searchParams.get(routingSearchParameterName))
                } else {
                    initialState.set(cluster.name, '')
                }
            })
        return initialState
    }

    function handleChange(event) {
        const clusterName = event.target.id
        const value = event.target.value
        const newRoutingConf = new Map(routingConfigurationState)
        newRoutingConf.set(clusterName, value)
        setRoutingConfigurationState(newRoutingConf)
    }

    const [searchParams, setSearchParams] = useSearchParams();
    const initialState = clusterRoutingConfigurationMap();
    const [routingConfigurationState, setRoutingConfigurationState] = useState(initialState)

    return <dialog id="vispana-config-modal" className="modal">
        <div className="modal-box text-center bg-standout-blue border"
             style={{borderColor: "#26324a"}}>
            <form method="dialog">
                <button id="close"
                        className="text-gray-400 text-sm absolute right-4 top-4">✕
                </button>
            </form>
            <br/>
            <div className="w-full">
                <span>Cluster routing</span>
                <form onSubmit={(event) => {
                    event.preventDefault();
                    loadedVespaState
                        .container
                        .clusters
                        .forEach(cluster => {
                            const containerName = cluster.name;
                            const value = event.currentTarget.elements[containerName].value
                            if (value) {
                                const route = routingSearchParamName(containerName);
                                searchParams.set(route, value)
                            } else {
                                const route = routingSearchParamName(containerName);
                                searchParams.delete(route)
                            }
                        })
                    setSearchParams(searchParams)
                    document.getElementById('vispana-config-modal').close()
                }}>