From c5a035bb5999f24823b124013dccecc02fe11322 Mon Sep 17 00:00:00 2001 From: Amit Jakubowicz Date: Thu, 14 Nov 2019 10:37:37 +0100 Subject: [PATCH] Recurrence picker frequency --- packages/qpa-components/Select.tsx | 9 +++- packages/qpa-components/index.ts | 16 ++++---- packages/qpa/Event/EventForm.tsx | 4 ++ .../qpa/Event/Recurrence/RecurrencePicker.tsx | 41 ++++++++++++++++--- 4 files changed, 57 insertions(+), 13 deletions(-) diff --git a/packages/qpa-components/Select.tsx b/packages/qpa-components/Select.tsx index 371dc65..3dd43a3 100644 --- a/packages/qpa-components/Select.tsx +++ b/packages/qpa-components/Select.tsx @@ -1 +1,8 @@ -import * as React from 'react' +import * as React from "react" +import MUISelect, { SelectProps } from "@material-ui/core/Select" + +interface Props extends SelectProps {} + +const Select = (props: Props) => + +export default Select diff --git a/packages/qpa-components/index.ts b/packages/qpa-components/index.ts index fa0c344..82dace6 100644 --- a/packages/qpa-components/index.ts +++ b/packages/qpa-components/index.ts @@ -7,6 +7,7 @@ import { IconButton, Menu, MenuItem } from "@material-ui/core" import TagIcon from "@material-ui/icons/LocalOffer" import DatePicker, { DatePickerProps } from "./DatePicker" import TimePicker, { TimePickerProps } from "./TimePicker" +import Select from "./Select" import PickersProvider from "./PickersProvider" import MessageBar from "./MessageBar" import Fab from "./Fab" @@ -14,20 +15,21 @@ import Fab from "./Fab" export { Avatar, Button, - MessageBar, ButtonProps, IconButton, DatePicker, DatePickerProps, - TimePicker, - TimePickerProps, - TextField, - TextFieldProps, - Spinner, Fab, Icon, - TagIcon, Menu, MenuItem, + MessageBar, PickersProvider, + Select, + Spinner, + TagIcon, + TextField, + TextFieldProps, + TimePicker, + TimePickerProps, } diff --git a/packages/qpa/Event/EventForm.tsx b/packages/qpa/Event/EventForm.tsx index b8450f9..df4fb62 100644 --- a/packages/qpa/Event/EventForm.tsx +++ b/packages/qpa/Event/EventForm.tsx @@ -14,6 +14,7 @@ import { EventStatus } from "../../../@types" import * as intl from "react-intl-universal" import TagSelector from "../EventTags/TagsSelector" import messages from "./EventForm.msg.json" +import RecurrencePicker from "./Recurrence/RecurrencePicker" interface Props { values?: EventFormData @@ -107,6 +108,9 @@ const EventForm = (props: Props) => { {({ isValid, setFieldValue, values }) => { return ( + { + console.log('set rrule to event', rrule) + }}/> setFieldValue("tagNames", tagNames)} diff --git a/packages/qpa/Event/Recurrence/RecurrencePicker.tsx b/packages/qpa/Event/Recurrence/RecurrencePicker.tsx index b51136d..0cbf939 100644 --- a/packages/qpa/Event/Recurrence/RecurrencePicker.tsx +++ b/packages/qpa/Event/Recurrence/RecurrencePicker.tsx @@ -1,20 +1,51 @@ +import { Select } from "qpa-components" import * as React from "react" +import RRule, { Frequency } from "rrule" import rrule from "rrule" import styled from "@emotion/styled" +import messages from "./RecurrencePicker.msg.json" +import intl from "react-intl-universal" interface Props { firstOccurrence: { - startDate: string - endDate: string + start: string + end: string } - rrule: string + rrule?: string onChange: (rrule: string) => void } const RecurrencePicker = (props: Props) => { - return + const [freq, setFreq] = React.useState(RRule.WEEKLY) - + intl.load({ + "en-GB": messages.en, + "es-ES": messages.es, + }) + + const recurrence = new RRule({ + freq, + dtstart: new Date(props.firstOccurrence.start), + }) + + return ( + + +

{recurrence.toString()}

+
+ ) } const Root = styled.div`` + +export default RecurrencePicker