Image gallery has been resolved

This commit is contained in:
Qolzam
2017-11-11 11:02:37 +07:00
parent 7bbb1679ad
commit 9ffd6a1e40
23 changed files with 186 additions and 103 deletions

View File

@@ -8,7 +8,7 @@ export interface IImageGalleryComponentProps {
* @type {(URL: string,fullPath: string)}
* @memberof IImageGalleryComponentProps
*/
set?: (URL: string,fullPath: string) => void
set: (URL: string,fullPath: string) => void
/**
* Delete an image
@@ -18,25 +18,18 @@ export interface IImageGalleryComponentProps {
deleteImage?: (imageId: string) => void
/**
* Save image in image gallery
* Upload image to the server
*
* @memberof IImageGalleryComponentProps
*/
saveImageGallery?: (URL: string,fullPath: string) => void
/**
* Change progress state
*
* @memberof IImageGalleryComponentProps
*/
progressChange?: (percentage: number, status: boolean) => void
uploadImage?: (image: any, imageName: string) => any
/**
* Close image gallery
*
* @memberof IImageGalleryComponentProps
*/
close?: () => void
close: () => void
/**
* List of image in image gallery

View File

@@ -124,16 +124,8 @@ export class ImageGalleryComponent extends Component<IImageGalleryComponentProps
handleSendResizedImage = (event: any) => {
const { resizedImage, fileName } = event.detail
const {saveImageGallery, progressChange} = this.props
FileAPI.uploadImage(resizedImage, fileName, (percent: number, status: boolean) => {
progressChange!(percent,status)
}).then((result) => {
/* Add image to image gallery */
saveImageGallery!(result.downloadURL,result.metadata.fullPath)
})
const {uploadImage} = this.props
uploadImage(resizedImage,fileName)
}
/**
@@ -231,7 +223,7 @@ export class ImageGalleryComponent extends Component<IImageGalleryComponentProps
*/
const mapDispatchToProps = (dispatch: any, ownProps: IImageGalleryComponentProps) => {
return {
saveImageGallery: (imageURL: string,imageFullPath: string) => dispatch(imageGalleryActions.dbSaveImage(imageURL,imageFullPath)),
uploadImage: (image: any, imageName: string) => dispatch(imageGalleryActions.dbUploadImage(image,imageName)),
deleteImage: (id: string) => dispatch(imageGalleryActions.dbDeleteImage(id)),
progressChange : (percent: number,status: boolean) => dispatch(globalActions.progressChange(percent, status))

View File

@@ -3,7 +3,6 @@
import React, { Component } from 'react'
import { connect } from 'react-redux'
import { Route, Switch, NavLink, withRouter, Redirect } from 'react-router-dom'
import { firebaseAuth, firebaseRef } from 'data/firebaseClient'
import { push } from 'react-router-redux'
import Snackbar from 'material-ui/Snackbar'
import LinearProgress from 'material-ui/LinearProgress'
@@ -16,6 +15,8 @@ import Setting from 'components/setting'
import MasterLoading from 'components/masterLoading'
import { IMasterComponentProps } from './IMasterComponentProps'
import { IMasterComponentState } from './IMasterComponentState'
import { ServiceProvide, IServiceProvider } from 'core/factories'
import { IAuthorizeService } from 'core/services/authorize'
// - Import actions
import {
@@ -36,9 +37,15 @@ import {
export class MasterComponent extends Component<IMasterComponentProps, IMasterComponentState> {
static isPrivate = true
private readonly _serviceProvider: IServiceProvider
private readonly _authourizeService: IAuthorizeService
// Constructor
constructor (props: IMasterComponentProps) {
super(props)
this._serviceProvider = new ServiceProvide()
this._authourizeService = this._serviceProvider.createAuthorizeService()
this.state = {
loading: true,
authed: false,
@@ -73,7 +80,7 @@ export class MasterComponent extends Component<IMasterComponentProps, IMasterCom
componentWillMount () {
firebaseAuth().onAuthStateChanged((user: any) => {
this._authourizeService.onAuthStateChanged((user: any) => {
if (user) {
this.props.login(user)

View File

@@ -27,6 +27,7 @@ import Dialog from 'material-ui/Dialog'
import IconButton from 'material-ui/IconButton'
import MoreVertIcon from 'material-ui/svg-icons/navigation/more-vert'
import IconMenu from 'material-ui/IconMenu'
import reactStringReplace from 'react-string-replace'
// - Import app components