From 028218702ca1ae75ac37a700124abaec8d99dc78 Mon Sep 17 00:00:00 2001 From: "Leonardo M. Hofling" Date: Wed, 13 Feb 2019 00:25:22 -0200 Subject: [PATCH 1/2] add conferencing buttons to event details --- spec/event_crud.spec.js | 12 ++- src/components/event-details/EventDetails.js | 79 +++++++++++++++++++- 2 files changed, 89 insertions(+), 2 deletions(-) diff --git a/spec/event_crud.spec.js b/spec/event_crud.spec.js index 7f70775..79a4762 100644 --- a/spec/event_crud.spec.js +++ b/spec/event_crud.spec.js @@ -3,13 +3,18 @@ var storeManager = require('../src/flow/store/storeManager') var eventActionLazy = require('../src/flow/store/event/eventActionLazy') const store = storeManager.createInitialStore({}) +const EVENT_URL = + 'https://chat.openintents.org/#/room/#oi-calendar:openintents.modular.im' describe('CRUD Events', () => { describe('add private event', () => { it('should store a new private event', () => { store .dispatch( - eventActionLazy.addEvent({ title: 'Testing add private event' }) + eventActionLazy.addEvent({ + title: 'Testing add private event', + url: EVENT_URL, + }) ) .then(() => { const allEvents = store.getState().events.allEvents @@ -18,6 +23,11 @@ describe('CRUD Events', () => { 2, 'Should contain default event and new event' ) + assert.strict.equal( + allEvents[1].url, + EVENT_URL, + 'Should contain the correcly event url' + ) }) }) }) diff --git a/src/components/event-details/EventDetails.js b/src/components/event-details/EventDetails.js index 3093a0e..a6fecf1 100644 --- a/src/components/event-details/EventDetails.js +++ b/src/components/event-details/EventDetails.js @@ -89,6 +89,8 @@ class EventDetails extends Component { this.props.eventDetail && this.props.eventDetail.duration ? 'duration' : 'endDate', + addingConferencing: false, + removingConferencing: false, } this.bound = [ @@ -102,6 +104,8 @@ class EventDetails extends Component { 'updateEvent', 'deleteEvent', 'updateEndDateFromDuration', + 'addConferencing', + 'removeConferencing', ].reduce((acc, d) => { acc[d] = this[d].bind(this) delete this[d] @@ -243,9 +247,46 @@ class EventDetails extends Component { sendInvites(eventDetail, guests, eventType) } + addConferencing() { + console.log('add conferencing') + this.setState({ + addingConferencing: true, + }) + + setTimeout(() => this.addConferencingCallback(), 1000) + } + + addConferencingCallback() { + const { eventDetail } = this.props + eventDetail['url'] = + 'https://chat.openintents.org/#/room/#oi-calendar:openintents.modular.im' + this.setState({ eventDetail, addingConferencing: false }) + } + + removeConferencing() { + console.log('remove conferencing') + this.setState({ + removingConferencing: true, + }) + + setTimeout(() => this.removeConferencingCallback(), 1000) + } + + removeConferencingCallback() { + const { eventDetail } = this.props + eventDetail['url'] = null + this.setState({ eventDetail, addingConferencing: false }) + } + render() { console.log('[EVENDETAILS.render]', this.props) - const { showInvitesModal, sending, endDateOrDuration } = this.state + const { + showInvitesModal, + sending, + endDateOrDuration, + addingConferencing, + removingConferencing, + } = this.state const { handleClose } = this.bound const { views, @@ -264,6 +305,8 @@ class EventDetails extends Component { addEvent, updateEvent, deleteEvent, + addConferencing, + removeConferencing, } = this.bound const hasGuests = checkHasGuests(eventDetail.guests) @@ -371,6 +414,40 @@ class EventDetails extends Component { {renderDurationComponent()} )} +
+ {!eventDetail.url ? ( + + ) : ( +
+ + +
+ )} +