Revealing components based on user's radio item selections

Based on user’s selection of interval and whether they want to convert to other intervals, I’m trying to display different options. If the user decides to not change to other intervals, the layout stays the same.
dash (n)

If user chooses Hourly intervals and says yes to converting into other intervals, the below options are displayed

dash(y-hourly)

If the user chooses either 15 minute/30 minute interval and yes to converting into other intervals they are displayed the same “Hourly option”.
dash (y-15-hourly)

Currently, I’ve created two separate html.Divs with dcc.RadioItems and used the style property to hide and display these html.Divs based on the user’s choices. The app callback has two inputs because user can modify the intervals/whether they want to convert into other intervals and thus the app needs to update if either is changed. I am also using the values of the hidden radio items based on the user choices to perform some functions. This solution seems to work for me but since I’m new I was wondering if there is a better way to go about doing so using chained callbacks or any other method.

I had previously tried returning two different html.Div whose children contained the different “Convert into” radio items through the function “back_converter_radio” as seen below. However since no radio item is created if the user doesn’t want to convert into other intervals, the second callback throws an error because it is not able to find the Input component id and property.

app.layout=html.Div([
    html.H4('Interval of load data'),
    dcc.RadioItems(
        id='intervals',
        options=[{'label':'15 minutes','value':15},
                 {'label':'30 minutes','value':30},
                 {'label':'Hourly','value':60}],
        value=60,
        labelStyle={'display':'inline-block'}
        ),
    html.H4('Convert into other intervals'),
    dcc.RadioItems(
        id='conversion',
        options=[{'label':'Yes','value':'y'},
                 {'label':'No','value':'n'}],
        value='n',
        labelStyle={'display':'inline-block'}
        ),
    html.Div(
        id='15-30-conv',
        children=[
            html.H4('Convert into: '),
            dcc.RadioItems(
                id='15-30-bck-cnv',
                options=[{'label':'15 minute intervals','value':15},
                         {'label':'30 minute intervals','value':30}],
                value=15,
                labelStyle={'display':'inline-block'}
                )],
        style={'display':'none'}
        ),
    html.Div(
        id='hourly-conv',
        children=[
            html.H4('Convert into: '),
            dcc.RadioItems(
                id='hourly-btn',
                options=[{'label':'Hourly intervals','value':60}],
                value=60,
                labelStyle={'display':'inline-block'}
                ),
            ],
        style={'display':'none'}
        ),
    ])

@app.callback([Output('hourly-conv', 'style'),
               Output('15-30-conv', 'style')],
              [Input('conversion','value'),
              Input('intervals','value')],
              prevent_initial_call=True)
def back_converter_radio(cnv_rad1,frequency):
    if cnv_rad1=='y' and frequency==60:
        return {'display':'none'},{'display':'block'}
    elif cnv_rad1=='y' and (frequency==15 or frequency==30):
        return {'display':'block'},{'display':'none'}
    else:
        return {'display':'none'},{'display':'none'}