import * as React from "react";
import { get } from "lodash";

import { style } from "./style";
import { default as defaultData } from "./data.json";

import { doIShow, combineData } from "../../utils";

import theme from "../../theme";

import {
  Block,
  Section,
  Headline,
  Text,
  Container,
  Button,
  Grid,
  GridItem,
  FormBuilder,
  FormField,
} from "@sc/plugins/webcomponents/v2";
import { FormFieldTypes } from "@sc/modules/v2/CRUD/FormBuilder/types";

type LayoutProps = {
  data: any;
};

const Layout: React.FC<LayoutProps> = ({ data }) => {
  const initialContent = {
    main_headline: {
      html: "Headline Goes Here",
    },
    sub_headline: {
      html: "Sub Headline Text Content Goes Here",
    },
  };

  const content = combineData(initialContent, defaultData, data);

  return (
    <Block>
      <Section style={style.SECTION}>
        <Container
          style={{
            ...style.SECTION_INNER,
            maxWidth: get(data, "section.pageMargin"),
          }}
        >
          <Grid spacing={10}>
            <GridItem xs={6}>
              <Container style={{ padding: "20px 0" }}>
                <Text style={style.TEXT}>Contacts</Text>
                <Headline style={{ ...style.HEADLINE, padding: 0 }}>
                  Get in touch
                </Headline>
                <Text style={{ ...style.TEXT, marginTop: 150 }}>
                  Company@domain.com
                </Text>
                <Text style={style.TEXT}>
                  <p>123 Elm Street, City, RI 12345</p>
                </Text>
              </Container>
            </GridItem>
            <GridItem xs={6}>
              <FormBuilder
                style={{ marginTop: 30 }}
                data={[
                  {
                    type: FormFieldTypes.TEXT,
                    name: "name",
                    placeholder: "Name",
                    style: style.FORM_FIELD.style,
                    inputStyle: style.FORM_FIELD.inputStyle,
                  },
                  {
                    type: FormFieldTypes.TEXT,
                    name: "email",
                    placeholder: "Email",
                    style: style.FORM_FIELD.style,
                    inputStyle: style.FORM_FIELD.inputStyle,
                  },
                  {
                    type: FormFieldTypes.TEXTAREA,
                    name: "comment",
                    placeholder: "Write something...",
                    style: style.FORM_FIELD.style,
                    inputStyle: style.FORM_FIELD.inputStyle,
                  },
                ]}
              />
              <Button
                style={{ ...style.BUTTON.style, marginLeft: 10 }}
                caption1="Send"
                caption1style={style.BUTTON.caption1}
              />
            </GridItem>
          </Grid>
        </Container>
      </Section>
    </Block>
  );
};

export default Layout;
