React Dynamic MultiSelect

I am new to react and googling multi select is not turning up anything useful. What I currently have is a UI with a multi select, where a user can select a list of states. Now after state selection, a user can select cities based off of the states that they clicked above in a second multiselect. The states part is working, and here is the psuedo code for that piece.


import * as React from "react";
import {MultiSelect}



    type states = [
        states: string[]
        cities: string[]
    ]

    const [results, setStates] = React.useState<states>({
        states: []
        cities:[]
    )};
    
    const allStates = [
        "Utah",
        "Oregon",
        "Wisconsin"
    ]
    const allUtahCities = [
        "Salt Lake",
    ]
    const allOregonCities = [
        "Medford",
        "Portland
    ]

    return(
        <form>
            <MultiSelect
                placeholder = (intl.formatMessage("Please Select a State"))
                options = {allStates.map((x: string) => ({ label: x, value: x}))}
                values = {results.states}
                onItemsChange={(e) => (setField((prev) =>({...prev, states: e? e.map((i) => i.value) : []})))}          
            </MultiSelect>
        </form>
    
    );

What I would like to do, is instead of having a completely separate second multi select with a list of cities, is in the same multi select. If you select Utah, then Salt Lake will appear below it (and checked!) in the same drop down. I feel like I should be able to make an async call to refresh the list, but based off of googling this doesn’t seem possible, so I am turning this query over to the internet incase I am missing something.

If people do not believe the above is possible. Is it possible to list Utah, with Salt Lake below it in the drop down, and if you select Utah, Salt Lake will be selected automatically?

If that is not possible is it possible to have a multi select where all of the options are selected automatically? I feel like this should be possible but I admittedly I haven’t googled that last one.