Files
streaming-landing1/src/components/main/main.tsx
T
2023-03-20 16:45:16 +05:00

125 lines
3.1 KiB
TypeScript

import './main.css'
import React, { useEffect, useState } from "react";
import { AnimationComponent } from "../animationComponent/animationComponent";
import { SliderComponent } from "../sliderComponent/sliderComponent";
import { CalendarDesktop } from "../calendarDesktop/calendarDesktop";
import { Multiplayer } from "../multiplayer/multiplayer";
import { Devices } from "../devices/devices";
import { Player } from "../player/player";
import { Analytics } from "../analytics/analytics";
import { CloudSolution } from "../cloudSolution/cloudSolution";
import { Demos } from "../demos/demos";
import { PhotoComponent } from "../photoComponent/photoComponent";
import { CalendarMobile } from "../calendarMobile/calendarMobile";
import moment, { Moment } from "moment";
import useScreenSize from 'use-screen-size'
export type TObjct = {
calendar: boolean;
timePicker: boolean;
form: boolean;
confirm: boolean;
};
export type TText = {
text: object,
}
export const Main: React.FC<any> = ({ locale, cards }) => {
const { width } = useScreenSize()
const [displayForm, setDisplayForm] = useState(true);
const [time, setTime] = useState(moment());
useEffect(() => {
setTime(moment().locale(locale))
}, [locale])
const [next, setNext] = useState({
calendar: true,
timePicker: false,
form: false,
confirm: false,
});
const size = useScreenSize()
const isMobile = size.width >= 900 ? false : true;
useEffect(() => {
if (isMobile) {
setNext({
calendar: true,
timePicker: true,
form: true,
confirm: false,
})
}
}, [width])
function updateTime(value: Moment) {
setTime(value);
}
function navigationHandler(value: TObjct) {
setNext(value);
}
function onExit() {
setNext({
calendar: true,
timePicker: false,
form: false,
confirm: false,
})
setDisplayForm(true)
}
return (
<main className="main">
<AnimationComponent />
<SliderComponent />
<div className="calendar__mobile">
<CalendarMobile
locale={locale}
text={'calendar'}
setDisplayForm={setDisplayForm}
displayForm={displayForm}
setOpen={navigationHandler}
open={next}
time={time}
onUpdate={updateTime}
onExit={onExit}
isMobile={isMobile}
></CalendarMobile>
</div>
<div className="calendar__desktop">
<CalendarDesktop
locale={locale}
text={'calendar'}
setDisplayForm={setDisplayForm}
displayForm={displayForm}
setOpen={navigationHandler}
open={next}
time={time}
onUpdate={updateTime}
onExit={onExit}
isMobile={isMobile}
></CalendarDesktop>
</div>
<Multiplayer text={'multiplayer'} />
<Devices text={'devices'} />
<PhotoComponent text={'photoComponent'} />
<Player text={'player'} />
<Analytics text={'analytics'} />
<CloudSolution text={'analytics'} />
<Demos cards={cards} />
</main>
);
};