From 2cfba14412d24aca860d38bcbcb50c3c8afca65c Mon Sep 17 00:00:00 2001 From: mrissi Date: Thu, 8 Jun 2017 23:51:13 -0300 Subject: [PATCH 1/4] Add files via upload --- src/image/facebook.png | Bin 0 -> 4857 bytes src/image/twitter.png | Bin 0 -> 5793 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/image/facebook.png create mode 100644 src/image/twitter.png diff --git a/src/image/facebook.png b/src/image/facebook.png new file mode 100644 index 0000000000000000000000000000000000000000..e8cbcecc2a39e105e3a6b111550ebcf5f6559fc7 GIT binary patch literal 4857 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 fZip-753v6ai1(`X+uL$Nkc;* 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 Date: Mon, 19 Jun 2017 00:55:47 -0300 Subject: [PATCH 2/4] corrigido bug do css --- src/Dispatcher.js | 3 + src/actions/CreateEventAction.js | 43 ++++++++ src/actions/EventDetailsAction.js | 15 +++ src/actions/HeaderActions.js | 54 ++++++++++ src/index.js | 156 ++++++--------------------- src/stores/CreateEventStore.js | 50 +++++++++ src/stores/EventDetailsStore.js | 52 +++++++++ src/stores/HeaderStore.js | 122 +++++++++++++++++++++ src/views/AddressComponent.js | 2 +- src/views/createEvent.js | 172 +++++++++++++++--------------- src/views/createInstituction.js | 172 +++++++++++++++--------------- src/views/eventDetail.js | 18 ++-- src/views/eventList.jsx | 43 ++++---- src/views/indexBody.jsx | 23 ++-- src/views/layout/footer.jsx | 10 +- src/views/layout/header.jsx | 66 +++++++++--- src/views/layout/master.jsx | 8 +- src/views/layout/sobre.js | 8 +- src/views/layout/solidarize.css | 42 ++++++-- 19 files changed, 678 insertions(+), 381 deletions(-) create mode 100644 src/Dispatcher.js create mode 100644 src/actions/CreateEventAction.js create mode 100644 src/actions/EventDetailsAction.js create mode 100644 src/actions/HeaderActions.js create mode 100644 src/stores/CreateEventStore.js create mode 100644 src/stores/EventDetailsStore.js create mode 100644 src/stores/HeaderStore.js diff --git a/src/Dispatcher.js b/src/Dispatcher.js new file mode 100644 index 0000000..6860c63 --- /dev/null +++ b/src/Dispatcher.js @@ -0,0 +1,3 @@ +import { Dispatcher } from 'flux'; + +export default new Dispatcher; diff --git a/src/actions/CreateEventAction.js b/src/actions/CreateEventAction.js new file mode 100644 index 0000000..27b8cd2 --- /dev/null +++ b/src/actions/CreateEventAction.js @@ -0,0 +1,43 @@ +import dispatcher from '../Dispatcher'; +import axios from 'axios'; + + +const axiosConfig = () => { + return axios.create({ + headers: {'Content-Type': "application/json; charset=utf-8"} + }); +} + + +const createFormData = (form) => { + + let body = form.filter(el => el.name) + .reduce((a, b) => ({...a, [b.name]: b.value}), {}); + + body["timestamp"] = new Date().toISOString(); + body["event_time"] = new Date().toISOString(); + body["address"] = body["address"] + " - " + body["addressNumber"]; + return JSON.stringify(body); +} + + +export function createEventAction(event) { + var url = "https://solidarize-dev.herokuapp.com/event"; + let data = createFormData(event); + dispatcher.dispatch({ + type: 'CREATE_EVENT' + }); + console.log(data); + axiosConfig().post(url, data) + .then(res => { + dispatcher.dispatch({ + type: 'CREATE_EVENT_SUCCESS' + }) + }); +} + +export function successConfirm() { + dispatcher.dispatch({ + type: 'CREATE_EVENT_SUCCESS_CONFIRM' + }); +} diff --git a/src/actions/EventDetailsAction.js b/src/actions/EventDetailsAction.js new file mode 100644 index 0000000..a435aa5 --- /dev/null +++ b/src/actions/EventDetailsAction.js @@ -0,0 +1,15 @@ +import dispatcher from '../Dispatcher'; +import axios from 'axios'; + +export function eventDetailListAction(eventId) { + dispatcher.dispatch({ + type: 'EVENT_DETAIL_COMPONENT_VISIBLE' + }); + axios.get('https://solidarize-dev.herokuapp.com/event/' + eventId) + .then(res => { + dispatcher.dispatch({ + type: 'EVENT_DETAIL_DATA', + events: [res.data] + }) + }); +} diff --git a/src/actions/HeaderActions.js b/src/actions/HeaderActions.js new file mode 100644 index 0000000..6c5e01f --- /dev/null +++ b/src/actions/HeaderActions.js @@ -0,0 +1,54 @@ +import dispatcher from '../Dispatcher'; +import axios from 'axios'; + +export function aboutAction() { + dispatcher.dispatch({ + type: 'ABOUT_COMPONENT_VISIBLE' + }) +} + +export function createEventAction() { + dispatcher.dispatch({ + type: 'CREATE_EVENT_COMPONENT_VISIBLE' + }) +} + +export function createInstitutionAction() { + dispatcher.dispatch({ + type: 'CREATE_INSTITUTION_COMPONENT_VISIBLE' + }) +} + +export function eventListAction() { + dispatcher.dispatch({ + type: 'EVENT_LIST_COMPONENT_VISIBLE' + }); + axios.get(`https://solidarize-dev.herokuapp.com/events?offset=10&order=desc`) + .then(res => { + dispatcher.dispatch({ + type: 'EVENT_LIST_DATA', + events: res.data + }) + }); +} + +export function homeAction() { + dispatcher.dispatch({ + type: 'HOME_COMPONENT_VISIBLE' + }); + axios.get(`https://solidarize-dev.herokuapp.com/events/rank?offset=3&order=desc`) + .then(res => { + dispatcher.dispatch({ + type: 'EVENT_LIST_DATA', + events: res.data + }) + }); +} + +export function authAction(data) { + dispatcher.dispatch({ + type: 'IS_AUTH', + facebookData: data + }); + homeAction(); +} \ No newline at end of file diff --git a/src/index.js b/src/index.js index d0e9d67..40a4d36 100644 --- a/src/index.js +++ b/src/index.js @@ -1,6 +1,5 @@ import React from 'react'; import ReactDOM from 'react-dom'; -import axios from 'axios'; import registerServiceWorker from './registerServiceWorker'; import DefaultLayout from './views/layout/master' import FooterLayout from './views/layout/footer' @@ -11,9 +10,11 @@ import EventList from './views/eventList' import IndexBody from './views/indexBody' import EventDetailComponent from './views/eventDetail' import CreateInstitutionComponent from './views/createInstituction' -import './views/layout/solidarize.css' import './style/background.png' +import HeaderStore from './stores/HeaderStore' +import EventDetailsStore from './stores/EventDetailsStore' +import * as HeaderActions from './actions/HeaderActions' const refreshReact = () => { ReactDOM.render(, document.getElementById('root')); registerServiceWorker(); @@ -25,142 +26,47 @@ class IndexComponent extends React.Component { constructor(props) { super(props); this.state = { - indexBodyVisible: true, - sobreComponentVisible: false, - eventListComponentVisible: true, - createEventVisible: false, - eventDetailVisible: false, - institutionComponentVisible: true, - active: 'home', - events: [] + header: HeaderStore.getAll(), + eventDetails: EventDetailsStore.getAll() } } componentDidMount() { - this.fetchEventListByRank(); + HeaderActions.homeAction(); } - fetchEventList() { - axios.get(`https://solidarize-dev.herokuapp.com/events?offset=10&order=desc`) - .then(res => { - this.setState({events: res.data}); - refreshReact(); - }); + componentWillMount() { + HeaderStore.on('change', () => { + this.setState({ + header: HeaderStore.getAll(), + eventDetails: EventDetailsStore.setDefaultEventDetails() + }) + }) + + EventDetailsStore.on('change', () => { + this.setState({ + header: HeaderStore.setHeaderToDefault(), + eventDetails: EventDetailsStore.getAll() + }) + }) } - fetchEventListByRank() { - axios.get(`https://solidarize-dev.herokuapp.com/events/rank?offset=3&order=desc`) - .then(res => { - this.setState({events: res.data}); - refreshReact(); - }); - } - - fetchEventById(eventId) { - axios.get('https://solidarize-dev.herokuapp.com/event/' + eventId) - .then(res => { - this.setState({events: [res.data]}); - refreshReact(); - }); - } - - onClickEvenListHeader() { - this.setState({ - indexBodyVisible: false, - sobreComponentVisible: false, - eventListComponentVisible: true, - createEventVisible: false, - eventDetailVisible: false, - institutionComponentVisible: true, - active: 'event' - }); - this.fetchEventList(); - } - - onClickHomeHeader() { - this.setState({ - indexBodyVisible: true, - sobreComponentVisible: false, - eventListComponentVisible: true, - createEventVisible: false, - eventDetailVisible: false, - institutionComponentVisible: true, - active: 'home' - }); - this.fetchEventListByRank(); - } - - onClickSobreHeader() { - this.setState({ - indexBodyVisible: false, - sobreComponentVisible: true, - eventListComponentVisible: false, - createEventVisible: false, - eventDetailVisible: false, - institutionComponentVisible: true, - active: 'sobre' - }); - refreshReact(); - } - - onClickCreateEventHeader() { - this.setState({ - indexBodyVisible: false, - sobreComponentVisible: false, - eventListComponentVisible: false, - createEventVisible: true, - eventDetailVisible: false, - institutionComponentVisible: true, - active: 'createEvent' - }); - refreshReact(); - } - - onClickCreateInstitutionHeader() { - this.setState({ - indexBodyVisible: false, - sobreComponentVisible: false, - eventListComponentVisible: false, - createEventVisible: false, - eventDetailVisible: false, - institutionComponentVisible: true, - active: 'createInstitution' - }); - refreshReact(); - } - - - onClickLeiaMais(eventId) { - this.setState({ - indexBodyVisible: false, - sobreComponentVisible: false, - eventListComponentVisible: false, - createEventVisible: false, - eventDetailVisible: true, - institutionComponentVisible: true, - active: 'eventDetail' - }); - - this.fetchEventById(eventId); - } render() { return ( - {this.state.indexBodyVisible ? : null} - {this.state.eventListComponentVisible ? - : null} - {this.state.sobreComponentVisible ? : null} - {this.state.createEventVisible ? : null} - {this.state.eventDetailVisible ? : null} - {this.state.institutionComponentVisible ? : null} + name={this.state.header.user.name} + auth={this.state.header.auth} + active={this.state.header.active}/> + {this.state.header.indexBodyVisible ? : null} + {this.state.header.eventListComponentVisible ? + : null} + {this.state.header.sobreComponentVisible ? : null} + {this.state.header.createEventVisible ? : null} + {this.state.eventDetails.eventDetailVisible ? + : null} + {this.state.header.institutionComponentVisible ? : null} ) diff --git a/src/stores/CreateEventStore.js b/src/stores/CreateEventStore.js new file mode 100644 index 0000000..e0d7def --- /dev/null +++ b/src/stores/CreateEventStore.js @@ -0,0 +1,50 @@ +import {EventEmitter} from 'events'; +import dispatcher from '../Dispatcher'; + +class CreateEventStore extends EventEmitter { + + constructor() { + super() + this.event = { + loading: false, + success: false + }; + } + + getAll() { + return this.event; + } + + setDefaultState() { + this.event.success = false; + this.event.loading = false; + + return this.event; + } + + handleAction(action) { + switch (action.type) { + case 'CREATE_EVENT' : { + this.event.loading = true; + this.emit('change'); + break; + } + case 'CREATE_EVENT_SUCCESS' : { + this.event.loading = false; + this.event.success = true; + this.emit('change'); + break; + } + case 'CREATE_EVENT_SUCCESS_CONFIRM' : { + this.setDefaultState(); + this.emit('change'); + break; + } + } + } +} + +const createEventStore = new CreateEventStore(); +dispatcher.register(createEventStore.handleAction.bind(createEventStore)); + +export default createEventStore; diff --git a/src/stores/EventDetailsStore.js b/src/stores/EventDetailsStore.js new file mode 100644 index 0000000..83714ac --- /dev/null +++ b/src/stores/EventDetailsStore.js @@ -0,0 +1,52 @@ +import {EventEmitter} from 'events'; +import dispatcher from '../Dispatcher'; + +class EventDetailsStore extends EventEmitter { + + constructor() { + super() + this.eventDetail = { + eventDetailVisible: false, + events: [] + }; + } + + handleAction(action) { + switch (action.type) { + case 'EVENT_DETAIL_COMPONENT_VISIBLE' : { + this.eventDetailsVisible(); + break; + } + case 'EVENT_DETAIL_DATA' : { + this.updateEvents(action.events); + break; + } + } + } + + eventDetailsVisible() { + this.eventDetail.eventDetailVisible = true; + this.eventDetail.events = []; + this.emit('change'); + } + + updateEvents(data) { + this.eventDetail.events = data; + this.emit('change'); + } + + getAll() { + return this.eventDetail; + } + + setDefaultEventDetails() { + this.eventDetail.eventDetailVisible = false; + this.eventDetail.events = []; + return this.eventDetail; + } +} + +const eventDetailsStore = new EventDetailsStore; +dispatcher.register(eventDetailsStore.handleAction.bind(eventDetailsStore)); + +export default eventDetailsStore; \ No newline at end of file diff --git a/src/stores/HeaderStore.js b/src/stores/HeaderStore.js new file mode 100644 index 0000000..fbe5a16 --- /dev/null +++ b/src/stores/HeaderStore.js @@ -0,0 +1,122 @@ +import {EventEmitter} from 'events'; +import dispatcher from '../Dispatcher'; +class HeaderStore extends EventEmitter { + + constructor() { + super(); + this.header = { + indexBodyVisible: true, + sobreComponentVisible: false, + eventListComponentVisible: true, + createEventVisible: false, + institutionComponentVisible: false, + active: 'home', + events: [], + auth: false, + user: {} + + } + } + + setHeaderToDefault() { + this.header.indexBodyVisible = false; + this.header.sobreComponentVisible = false; + this.header.eventListComponentVisible = false; + this.header.createEventVisible = false; + this.header.institutionComponentVisible = false; + this.header.active = 'none'; + return this.header; + } + + getAll() { + return this.header; + } + + handleAction(action) { + switch (action.type) { + case 'ABOUT_COMPONENT_VISIBLE' : { + this.aboutComponentVisible(); + break; + } + case 'CREATE_EVENT_COMPONENT_VISIBLE' : { + this.createEventComponentVisible(); + break; + } + case 'CREATE_INSTITUTION_COMPONENT_VISIBLE' : { + this.createInstitutionComponentVisible(); + break; + } + case 'EVENT_LIST_COMPONENT_VISIBLE' : { + this.eventListComponentVisible(); + break; + } + case 'HOME_COMPONENT_VISIBLE' : { + this.homeComponentVisible(); + break; + } + case 'EVENT_LIST_DATA' : { + this.eventDataVisible(action.events); + break; + } + case 'IS_AUTH' : { + this.authenticate(action.facebookData); + break; + } + } + } + + aboutComponentVisible() { + this.setHeaderToDefault(); + this.header.sobreComponentVisible = true; + this.header.active = 'sobre'; + this.emit('change'); + } + + createEventComponentVisible() { + this.setHeaderToDefault(); + this.header.createEventVisible = true; + this.header.active = 'createEvent'; + this.emit('change'); + } + + createInstitutionComponentVisible() { + this.setHeaderToDefault(); + this.header.institutionComponentVisible = true; + this.header.active = 'createInstitution'; + this.emit('change'); + } + + eventListComponentVisible() { + this.setHeaderToDefault(); + this.header.eventListComponentVisible = true; + this.header.active = 'event'; + this.header.events = []; + this.emit('change'); + } + + homeComponentVisible() { + this.setHeaderToDefault(); + this.header.indexBodyVisible = true; + this.header.eventListComponentVisible = true; + this.header.active = 'home'; + this.header.events = []; + this.emit('change'); + } + + eventDataVisible(data) { + this.header.events = data; + this.emit('change'); + } + + authenticate(data) { + this.setHeaderToDefault(); + this.header.auth = true; + this.header.user.name = data.name; + this.emit('change'); + } +} + +const headerStore = new HeaderStore; +dispatcher.register(headerStore.handleAction.bind(headerStore)); + +export default headerStore; diff --git a/src/views/AddressComponent.js b/src/views/AddressComponent.js index ca0fe8a..d4e4dab 100644 --- a/src/views/AddressComponent.js +++ b/src/views/AddressComponent.js @@ -125,7 +125,7 @@ class AddressComponent extends Component { className="fa fa-circle-o-notch fa-spin fa-2x fa-fw"> : null} : null } -

Local do Evento:

+ { this.props.cnpjActive ?

Endereço da Instituição:

:

Local do Evento:

}
{this.props.cnpjActive ? { - return axios.create({ - headers: {'Content-Type': "application/json; charset=utf-8"} - }); -} - +import * as CreateEventAction from '../actions/CreateEventAction'; +import CreateEventStore from '../stores/CreateEventStore' class CreateEventComponent extends React.Component { - onSubmit(evt) { - var url = "https://solidarize-dev.herokuapp.com/event"; + constructor() { + super() + this.state = { + event: CreateEventStore.getAll() + } + } - let data = this.createFormData(evt); - console.log(data); - axiosConfig().post(url, data); + componentWillMount() { + CreateEventStore.on('change', () => { + this.setState({ + event: CreateEventStore.getAll() + }) + }) + } + onSubmit(evt) { + let body = Array.from(evt.target.elements) + CreateEventAction.createEventAction(body); evt.preventDefault(); return false; } - createFormData(evt) { - let body = Array.from(evt.target.elements) - .filter(el => el.name) - .reduce((a, b) => ({...a, [b.name]: b.value}), {}); - - body["timestamp"] = new Date().toISOString(); - body["event_time"] = new Date().toISOString(); - body["address"] = body["address"] + " - " + body["addressNumber"]; - return JSON.stringify(body); + onClickSuccessMessage() { + CreateEventAction.successConfirm(); } - render() { return ( -
-
-
-

Cadastrar Evento



-
-
-
-
-
-
-
-
-

Título do Evento:

- -
+
+
+

Cadastrar Evento



+
+
+
+ +
+ {this.state.event.success ? +
+ × + Success! Indicates a successful or positive action. +
: null} +
+

Título do Evento:

+
-
-
-

SubTítulo:

- -
+
+
+
+

SubTítulo:

+
-
-
-

Descrição do Evento:

- -
+
+
+
+

Descrição do Evento:

+
-
-
+
+
+
- + -
-
-

Data e Hora:

- -
+
+
+

Data e Hora:

+ +
-



+



-
- -
+
+ +
-
- -
+
+
- -
-
+
+ +
) diff --git a/src/views/createInstituction.js b/src/views/createInstituction.js index 94d85b6..f8f4736 100644 --- a/src/views/createInstituction.js +++ b/src/views/createInstituction.js @@ -34,104 +34,100 @@ class CreateInstituctionComponent extends React.Component { render() { return ( -
-
-
-

Cadastrar Instituição



-
-
-
-
-
-
-
+
+
+

Cadastrar Instituição



+
+
+
+ +
+
+

Nome da Instituição:

+ +
+
+
+
+

Descrição da Instituição:

+ +
+
+
+
+
-

Nome da Instituição:

- +
+

Dados de Contatos:

+
+ + + +
-
-
-

Descrição da Instituição:

- +
-
-
- -
-
-

Dados de Contatos:

-
- - - -
-
-
- -
-
- -
-
- -
+ +
+
+ +
-

+

-
- -
+
+ +
-
- -
+
+
- -
+
+


diff --git a/src/views/eventDetail.js b/src/views/eventDetail.js index dfc0026..122e8cb 100644 --- a/src/views/eventDetail.js +++ b/src/views/eventDetail.js @@ -2,27 +2,31 @@ import React from 'react' import avatar from '../image/avatar.jpg'; import EventList from "./eventList"; +const userInfoStyle = { + clear: 'both' +} + class EventDetailComponent extends React.Component { render() { if (this.props.events.length == 0) { return ( -
+
) } return ( -
-
+
-
-
+
+
+
-

John Doe

+

John Doe

There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable. If you are @@ -42,7 +46,7 @@ class EventDetailComponent extends React.Component {

-
+




diff --git a/src/views/eventList.jsx b/src/views/eventList.jsx index 4b0ea43..86c3bfe 100644 --- a/src/views/eventList.jsx +++ b/src/views/eventList.jsx @@ -1,10 +1,6 @@ import React from 'react'; import evento from '../image/evento.jpg' - -const centralize = { - width: '860px', - margin: 'auto', -} +import * as EventDetailsAction from '../actions/EventDetailsAction' const getMonth = (event_time) => { var eventDate = new Date(event_time); @@ -35,43 +31,45 @@ const containerStyle = { } - class EventList extends React.Component { constructor(props) { super(props); } + handleEventDetailAction(eventId) { + EventDetailsAction.eventDetailListAction(eventId); + } + render() { if (this.props.events.length == 0) { return ( -
-
+
+
) } return ( -
+
{this.props.events.map(event =>
-
-

-

+
+

-
+

{getMonth(event.event_time)}
{getDay(event.event_time)}

+ + + + + + {event.rank} +
- - - - - {event.rank} -

{event.title}

@@ -82,8 +80,9 @@ class EventList extends React.Component { {event.eventTime}

{event.description} -
diff --git a/src/views/indexBody.jsx b/src/views/indexBody.jsx index 9c1aa72..ff47bb8 100644 --- a/src/views/indexBody.jsx +++ b/src/views/indexBody.jsx @@ -5,27 +5,22 @@ const imgStyle = { } -const containerStyle = { - display: 'inline', -} + var IndexBody = React.createClass({ render: function () { return ( -
-
-
-

solidarize

-

Todos juntos em busca de um mundo melhor!



-

- -
-
+
+
+

solidarize

+

Todos juntos em busca de um mundo melhor!



+

+
-
+

O Solidarize foi criado com a intenção de divulgar serviços de cunho social e unir instituições a pessoas que tem o interesse de contribuir.

- saiba mais + saiba mais
diff --git a/src/views/layout/footer.jsx b/src/views/layout/footer.jsx index 7739959..31a43ca 100644 --- a/src/views/layout/footer.jsx +++ b/src/views/layout/footer.jsx @@ -1,13 +1,17 @@ var React = require('react'); +const containerStyle = { + clear: 'both', + paddingTop: '60px' +} class FooterLayout extends React.Component { render() { return ( -