module IHP.IDE.SchemaDesigner.View.Tables.Show where

import IHP.ViewPrelude
import IHP.IDE.SchemaDesigner.Types
import IHP.IDE.SchemaDesigner.View.Layout

data ShowView = ShowView
    { ShowView -> [Statement]
statements :: [Statement]
    , ShowView -> Text
name :: Text
    , ShowView -> Statement
table :: Statement
    }

instance View ShowView where
    html :: (?context::ControllerContext, ?view::ShowView) => ShowView -> Html
html ShowView { [Statement]
Text
Statement
$sel:statements:ShowView :: ShowView -> [Statement]
$sel:name:ShowView :: ShowView -> Text
$sel:table:ShowView :: ShowView -> Statement
statements :: [Statement]
name :: Text
table :: Statement
.. } = [hsx|
        {renderFlashMessages}
        <div class="row no-gutters bg-white" id="schema-designer-viewer">
            {renderObjectSelector (zip [0..] statements) (Just name)}
            {renderColumnSelector name (zip [0..] columns) statements}
        </div>
        {migrationStatus}
    |]
        where
            columns :: [Column]
columns = (Statement -> CreateTable
unsafeGetCreateTable Statement
table).columns