From 21c858b51964cb719feee11439e14ac53a4f2b39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CSalar?= <“salar.sali97@gmail.com”> Date: Tue, 30 Aug 2022 15:21:36 +0300 Subject: [PATCH 1/4] Edited Heading component --- src/components/typography/Heading.tsx | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/components/typography/Heading.tsx b/src/components/typography/Heading.tsx index a476ea4..324d888 100644 --- a/src/components/typography/Heading.tsx +++ b/src/components/typography/Heading.tsx @@ -1,9 +1,20 @@ import React from "react"; +import classNames from "classnames"; type Props = { + className?: string | undefined; children: React.ReactNode; }; -export default function Heading({ children }: Props) { - return <h3 className="text-2xl text-current font-medium leading-relaxed">{children}</h3>; +export default function Heading({ children, className }: Props) { + return ( + <h3 + className={classNames([ + className, + "text-2xl text-current font-medium leading-7 ", + ])} + > + {children} + </h3> + ); } From 6d36b774b2b85dcf46b73c6984631fd0c32fc598 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CSalar?= <“salar.sali97@gmail.com”> Date: Tue, 30 Aug 2022 15:31:23 +0300 Subject: [PATCH 2/4] Aspect ratio component --- src/components/AspectRatio.tsx | 38 ++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 src/components/AspectRatio.tsx diff --git a/src/components/AspectRatio.tsx b/src/components/AspectRatio.tsx new file mode 100644 index 0000000..be6a1b8 --- /dev/null +++ b/src/components/AspectRatio.tsx @@ -0,0 +1,38 @@ +import classNames from "classnames"; +import React from "react"; + +export type Props = { + /** + * The style of component + */ + className?: string; + /** + * The optional child + */ + children?: React.ReactNode; +}; +const AspectRatio = ({ className, children }: Props) => { + return ( + <div + className={classNames( + "relative overflow-hidden pt-[55%] rounded w-full", + className + )} + > + {children} + </div> + ); +}; + +AspectRatio.Content = function AspectRatioContent({ + className, + children, +}: Props) { + return ( + <div className={classNames([className, "absolute top-0 w-full h-full"])}> + {children} + </div> + ); +}; + +export default AspectRatio; From c34cac7cee8b968a1bde5f0c916cdffa0d2c6792 Mon Sep 17 00:00:00 2001 From: filantrop <filantrop83@gmail.com> Date: Wed, 31 Aug 2022 20:10:01 +0300 Subject: [PATCH 3/4] added SearchBar for MainSection --- src/components/SearchBar.tsx | 156 +++++++++++++++++++++++++++++++++++ 1 file changed, 156 insertions(+) create mode 100644 src/components/SearchBar.tsx diff --git a/src/components/SearchBar.tsx b/src/components/SearchBar.tsx new file mode 100644 index 0000000..8698e4b --- /dev/null +++ b/src/components/SearchBar.tsx @@ -0,0 +1,156 @@ +/* -------------------------------------------------------------------------- */ +/* Imports */ +/* -------------------------------------------------------------------------- */ +import React from "react"; +import classNames from "classnames"; +import "../index.css"; +import { Combobox, Transition } from "@headlessui/react"; +import { Fragment, useEffect, useState } from "react"; +import { Scrollbar } from "react-scrollbars-custom"; + +/* -------------------------------------------------------------------------- */ +/* Component props */ +/* -------------------------------------------------------------------------- */ +type Hint = { + id: string; + caption: string; +}; + +type Props = { + onChange: (query: string) => void; + onSelected?: (value: Hint) => void; + hints: Hint[]; + disabled?: boolean; + inGroup?: boolean; + className?: string; + maxScrollSize?: number; + elementScrollSize?: number; +}; +/* -------------------------------------------------------------------------- */ +/* styles */ +/* -------------------------------------------------------------------------- */ +const inputStyle = ` + w-full + cursor-default + rounded + overflow-hidden + border + border-solid + shadow-none + border-gray-100 + focus:outline-none + focus:border-gray-200 + hover:border-gray-200 + py-2 pl-3 + text-sm + text-gray-900 +`; + +const inputList = ` + absolute z-10 mt-1 w-full max-h-56 + bg-white shadow-lg + rounded py-1 + overflow-hidden + focus:outline-none + text-base + sm:text-sm`; + +const inputInGroup = [ + `border-none + hover:none + active:none + focus:none + `, +]; + +/* -------------------------------------------------------------------------- */ +/* Component implementation */ +/* -------------------------------------------------------------------------- */ + +export default function TextInputBox({ + onChange, + onSelected, + hints, + disabled, + inGroup, + className, + maxScrollSize = 140, + elementScrollSize = 36, + ...props +}: Props) { + const [selected, setSelected] = useState<any>(hints); + const [query, setQuery] = useState(""); + + useEffect(() => { + onChange(query); + }, [query, onChange]); + + const handleSelected = (value: Hint) => { + setSelected(value); + onSelected && onSelected(value); + }; + return ( + <div className={classNames("w-60", className)}> + <Combobox value={selected} {...props} onChange={handleSelected}> + <div className="relative"> + <div className="relative w-full bg-white text-left focus:outline-none sm:text-sm"> + <Combobox.Input + className={classNames([ + [`${inputStyle}`], + { [`${inputInGroup}`]: inGroup }, + className, + ])} + onChange={(event) => setQuery(event.target.value)} + placeholder={"Search..."} + displayValue={(hint: Hint | undefined) => hint?.caption ?? ""} + /> + </div> + <div> + {query.length > 0 && ( + <div className={`${inputList}`}> + <Transition + as={Fragment} + leave="transition ease-in duration-100" + leaveFrom="opacity-100" + leaveTo="opacity-0" + > + <Combobox.Options> + {hints.length === 0 && query !== "" ? ( + <p className="">Nothing found.</p> + ) : null} + {/* <Scrollbar + style={{ + height: hints.length * elementScrollSize, + maxHeight: maxScrollSize, + }} + > */} + {hints.map((item: any, id: number) => ( + <Combobox.Option + key={id} + className={({ active, selected }) => + classNames( + active + ? "text-gray-900 bg-blue-50" + : "font-normal ", + "cursor-default select-none relative py-2 pl-3 pr-9", + selected + ? "text-gray-900 bg-blue-100" + : "font-normal " + ) + } + value={item} + > + <div>{item.caption}</div> + </Combobox.Option> + ))} + {/* </Scrollbar> */} + </Combobox.Options> + </Transition> + </div> + )} + </div> + </div> + </Combobox> + </div> + ); +} From 24f44b4352f6cd984f1e65ee759c87b8edb0a722 Mon Sep 17 00:00:00 2001 From: filantrop <filantrop83@gmail.com> Date: Thu, 1 Sep 2022 23:48:08 +0300 Subject: [PATCH 4/4] added bacrground image for main page --- src/assets/svg/background.svg | 7 +++++++ tailwind.config.js | 3 +++ 2 files changed, 10 insertions(+) create mode 100644 src/assets/svg/background.svg diff --git a/src/assets/svg/background.svg b/src/assets/svg/background.svg new file mode 100644 index 0000000..e15137a --- /dev/null +++ b/src/assets/svg/background.svg @@ -0,0 +1,7 @@ +<svg width="1187" height="1234" viewBox="0 0 1187 1234" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M408.998 745.256C206.829 467.159 -0.745132 678.488 53.4493 872.858C189.728 1182.79 541.828 1319.16 839.898 1177.41C942.643 1128.57 1029.84 1050.24 1091.25 951.643C934.96 1103.83 651.196 1078.4 408.998 745.208V745.256Z" fill="#F0F0F0"/> +<path d="M589.732 553.768C311.677 115.242 0.000483082 348.859 0.000483082 616.83C-0.108684 705.549 18.2856 793.237 53.9153 873.85C16.9159 692.296 217.547 552.363 404.339 812.896C675.684 1191.27 941.763 1124.69 1090.72 952.538C1138.53 876.188 1169.42 789.736 1181.14 699.443V700.63C1117.18 906.92 834.959 940.474 589.732 553.768Z" fill="#F5F5F5"/> +<path d="M780.298 357.556C573.819 3.33809 311.98 35.3415 134.904 225.06C47.4877 335.363 -0.21692 473.901 0.000741558 616.829C18.6403 357.604 320.112 177.116 593.041 616.829C835.635 1008.16 1137.87 906.216 1180.86 701.744V699.781C1184.64 671.939 1186.24 643.826 1185.66 615.715V587.685C1080.6 665.864 942.439 635.678 780.252 357.532L780.298 357.556Z" fill="#FAFAFA"/> +<path d="M781.72 420.618C970.818 736.727 1133.84 655.859 1186.06 588.242C1183.96 540.989 1176.61 494.146 1164.16 448.648C1076.01 450.611 1055.46 435.275 968.721 297.983C836.17 86.7264 669.183 -55.8716 377.451 42.2463C282.888 80.7758 199.359 143.787 134.788 225.303C335.256 33.4762 581.228 85.5393 781.72 420.618Z" fill="white"/> +<path d="M955.787 325.116C1042.25 462.675 1094.88 469.676 1164.15 448.672C1074.33 120.595 745.743 -69.6327 430.245 23.761C412.352 29.0424 394.753 35.204 377.449 42.2459C638.053 -43.2499 822.887 113.86 955.787 325.116Z" fill="white"/> +</svg> diff --git a/tailwind.config.js b/tailwind.config.js index 8f4d294..3c733b6 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -96,6 +96,9 @@ module.exports = { ], theme: { extend: { + backgroundImage: { + 'main': "url('/src/assets/svg/background.svg')", + }, screens: { tall: { raw: "(min-height: 1200px) and (orientation: portrait)" }, skewed: { raw: "(max-height: 600px)" },