From 6aec1ee17c8136c5329b38a4471467d340567c8d Mon Sep 17 00:00:00 2001 From: Nikos Kontakis Date: Thu, 24 Dec 2020 09:36:35 +0200 Subject: [PATCH] Calendar alternative view (#4254) * Introduce a new view that shows all upcoming scheduled events * remove log * Fix unused component import that was breaking the build * minor fix of inline style to className * Correct PR comments * Correct PR comments - move assignment inside className * Alter some css colors - fix css issue that was putting the add-to-calendar button out of the box on screen resolutions more than 2000px width * more PR comments fix - dark theme alignment --- packages/page-calendar/src/Day.tsx | 18 ++++- packages/page-calendar/src/DayItem.tsx | 20 ++++- packages/page-calendar/src/UpcomingEvents.tsx | 73 +++++++++++++++++++ packages/page-calendar/src/index.tsx | 50 +++++++++++-- 4 files changed, 148 insertions(+), 13 deletions(-) create mode 100644 packages/page-calendar/src/UpcomingEvents.tsx diff --git a/packages/page-calendar/src/Day.tsx b/packages/page-calendar/src/Day.tsx index 55dff58051..f90d5efd8a 100644 --- a/packages/page-calendar/src/Day.tsx +++ b/packages/page-calendar/src/Day.tsx @@ -3,7 +3,7 @@ import type { EntryInfo } from './types'; -import React, { useMemo, useRef } from 'react'; +import React, { useCallback, useMemo, useRef } from 'react'; import styled from 'styled-components'; import { Button } from '@polkadot/react-components'; @@ -21,6 +21,7 @@ interface Props { scheduled: EntryInfo[]; setNextDay: () => void; setPrevDay: () => void; + setView: (v: boolean) => void; } const HOURS = ((): number[] => { @@ -33,7 +34,7 @@ const HOURS = ((): number[] => { return hours; })(); -function Day ({ className, date, hasNextDay, now, scheduled, setNextDay, setPrevDay }: Props): React.ReactElement { +function Day ({ className, date, hasNextDay, now, scheduled, setNextDay, setPrevDay, setView }: Props): React.ReactElement { const { t } = useTranslation(); const monthRef = useRef(MONTHS.map((m) => t(m))); @@ -47,10 +48,21 @@ function Day ({ className, date, hasNextDay, now, scheduled, setNextDay, setPrev [date, now] ); + const viewSetter = useCallback(() => ( +