import dash
import dash_html_components as html
from dash.dependencies import Input, Output, State


import sd_material_ui

app = dash.Dash()
app.config.suppress_callback_exceptions = True

# A FlatButton on Paper
app.layout = sd_material_ui.Paper([
    html.Div(children=[
        html.P(id='output', children=['n_clicks value: . n_clicks_previous value: '])
    ]),
    
    sd_material_ui.FlatButton(id='input', label='Click me', backgroundColor='orange'),
    sd_material_ui.Dialog(id='dialog',children=[
        html.H1('test'),
        sd_material_ui.FlatButton(id='close', label='Close', backgroundColor='orange')
    ],
    modal=True)
])


@app.callback(Output('dialog','open'),
[Input('input','n_clicks'),Input('close','n_clicks')],
[State('dialog','open')]
)
def dialog(opn,click_close,isopen):
    if opn:
        if not isopen:
            return True
    if click_close:
        if isopen:
            return False

# Callback for FlatButton
@app.callback(
    dash.dependencies.Output('output', 'children'),
    [dash.dependencies.Input('input', 'n_clicks')],
    [dash.dependencies.State('input', 'n_clicks_previous')])
def display_clicks_flat(n_clicks_flat: int, n_clicks_flat_prev: int):
    if n_clicks_flat:
        return ['n_clicks value: {}. n_clicks_prev value: {}'.format(n_clicks_flat,
                                                                     n_clicks_flat_prev)]
    else:
        return ['n_clicks value: ']

if __name__ == '__main__':
    app.run_server(debug=True,port=8051)