Пример #1
0
SignupProgressStore.dispatchToken = Dispatcher.register( function( payload ) {
	var action = payload.action,
		step = addTimestamp( action.data );

	Dispatcher.waitFor( [ SignupDependencyStore.dispatchToken ] );

	if ( ! isEmpty( action.errors ) ) {
		return setStepInvalid( step, action.errors );
	}

	switch ( action.type ) {
		case 'FETCH_CACHED_SIGNUP':
			loadProgressFromCache();
			break;
		case 'SAVE_SIGNUP_STEP':
			saveStep( addStorableDependencies( step, action ) );
			break;
		case 'SUBMIT_SIGNUP_STEP':
			debug( 'submit step' );
			submitStep( addStorableDependencies( step, action ) );
			break;
		case 'PROCESS_SIGNUP_STEP':
			processStep( addStorableDependencies( step, action ) );
			break;
		case 'PROCESSED_SIGNUP_STEP':
			debug( 'complete step' );
			completeStep( addStorableDependencies( step, action ) );
			break;
	}
} );
Пример #2
0
PostsListCache.dispatchToken = Dispatcher.register( function( payload ) {
	var action = payload.action,
		PostListStore = require( './post-list-store-factory' )();

	Dispatcher.waitFor( [ PostListStore.dispatchToken ] );

	switch ( action.type ) {
		case 'FETCH_NEXT_POSTS_PAGE':
			set( PostListStore.get() );
			break;
		case 'RECEIVE_POSTS_PAGE':
			set( PostListStore.get() );
			break;

		case 'RECEIVE_UPDATED_POSTS':
			set( PostListStore.get() );
			break;

		case 'RECEIVE_UPDATED_POST':
		case 'RECEIVE_POST_BEING_EDITED':
			if ( action.post ) {
				markDirty( action.post, action.original ? action.original.status : null );
				set( PostListStore.get() );
			}
			break;
	}
} );
Пример #3
0
MediaLibrarySelectedStore.dispatchToken = Dispatcher.register( function( payload ) {
	var action = payload.action;

	Dispatcher.waitFor( [ MediaStore.dispatchToken ] );

	switch ( action.type ) {
		case 'CHANGE_MEDIA_SOURCE':
			setSelectedItems( action.siteId, [] );
			MediaLibrarySelectedStore.emit( 'change' );
			break;

		case 'SET_MEDIA_LIBRARY_SELECTED_ITEMS':
			if ( action.error || ! action.siteId || ! action.data || ! Array.isArray( action.data ) ) {
				break;
			}

			setSelectedItems( action.siteId, action.data );
			MediaLibrarySelectedStore.emit( 'change' );
			break;

		case 'CREATE_MEDIA_ITEM':
			if ( ! action.error && action.siteId && action.data ) {
				addSingle( action.siteId, action.data );
				MediaLibrarySelectedStore.emit( 'change' );
			}
			break;

		case 'RECEIVE_MEDIA_ITEM':
			if ( action.error && action.siteId && action.id ) {
				// If error occured while uploading, remove item from store
				removeSingle( action.siteId, { ID: action.id } );
				MediaLibrarySelectedStore.emit( 'change' );
			}

			if ( ! action.siteId || ! action.data || action.error ) {
				break;
			}

			receiveSingle( action.siteId, action.data, action.id );
			MediaLibrarySelectedStore.emit( 'change' );
			break;

		case 'RECEIVE_MEDIA_ITEMS':
			if ( ! action.error && action.siteId && action.data && action.data.media ) {
				receiveMany( action.siteId, action.data.media );
				MediaLibrarySelectedStore.emit( 'change' );
			}
			break;

		case 'REMOVE_MEDIA_ITEM':
			if ( ! action.siteId || ! action.data || action.error ) {
				break;
			}

			removeSingle( action.siteId, action.data );
			MediaLibrarySelectedStore.emit( 'change' );
			break;
	}
} );
Пример #4
0
		handlePayload( payload ) {
			var action = payload.action,
				allStoreActions = [ ActionTypes.RECEIVE_ADD_TERM, ActionTypes.CREATE_TERM ];

			// if this instance of the category id doesn't match return but allow CREATE_TERM, RECEIVE_ADD_TERM to fire regardless
			if ( action.id !== this.id && ! includes( allStoreActions, action.type ) ) {
				return;
			}

			Dispatcher.waitFor( [ TermStore.dispatchToken ] );

			switch ( action.type ) {
				case ActionTypes.SET_CATEGORY_QUERY:
					if ( action.siteId && action.query ) {
						updateActiveQuery( action.siteId, action.query );
					}
					break;

				case ActionTypes.FETCH_CATEGORIES:
					if ( ! action.siteId ) {
						break;
					}

					updateQueryStatus( action.siteId, { isFetchingPage: true } );
					this.emit( 'change' );
					break;

				case ActionTypes.RECEIVE_ADD_TERM:
				case ActionTypes.CREATE_TERM:
				case ActionTypes.RECEIVE_TERMS:
					if ( ! action.siteId ) {
						break;
					}

					if ( action.id === this.id ) {
						updateQueryStatus( action.siteId, { isFetchingPage: false } );
					}

					if ( action.error || ! action.data ) {
						break;
					}

					if ( action.data.termType !== 'categories' ) {
						break;
					}

					receiveCategories( action.siteId, action.data.terms, ActionTypes.CREATE_TERM === action.type );
					updateNextPage( action.siteId, action.data );

					if ( action.type === ActionTypes.RECEIVE_ADD_TERM ) {
						incrementFound( action.siteId );
					}
					this.emit( 'change' );
					break;
				default:
			}
		}
Пример #5
0
	ReducerStore.dispatchToken = Dispatcher.register( payload => {
		Dispatcher.waitFor( waitFor );

		const newState = reducer( state, payload );

		if ( newState !== state ) {
			state = newState;
			ReducerStore.emitChange();
		}
	} );
Пример #6
0
MediaStore.dispatchToken = Dispatcher.register( function( payload ) {
	var action = payload.action;

	Dispatcher.waitFor( [ MediaValidationStore.dispatchToken ] );

	switch ( action.type ) {
		case 'CREATE_MEDIA_ITEM':
		case 'RECEIVE_MEDIA_ITEM':
		case 'RECEIVE_MEDIA_ITEMS':
			if ( action.error && action.siteId && action.id ) {
				// If error occured while uploading, remove item from store
				removeSingle( action.siteId, { ID: action.id } );
				MediaStore.emit( 'change' );
			}

			if ( action.error || ! action.siteId || ! action.data ) {
				break;
			}

			if ( Array.isArray( action.data.media ) ) {
				receivePage( action.siteId, action.data.media );
			} else {
				receiveSingle( action.siteId, action.data, action.id );
			}

			MediaStore.emit( 'change' );
			break;

		case 'REMOVE_MEDIA_ITEM':
			if ( ! action.siteId || ! action.data ) {
				break;
			}

			if ( action.error ) {
				receiveSingle( action.siteId, action.data );
			} else {
				removeSingle( action.siteId, action.data );
			}

			MediaStore.emit( 'change' );
			break;

		case 'FETCH_MEDIA_ITEM':
			if ( ! action.siteId || ! action.id ) {
				break;
			}

			receiveSingle( action.siteId, {
				ID: action.id
			} );

			MediaStore.emit( 'change' );
			break;
	}
} );
PostContentImagesStore.dispatchToken = Dispatcher.register( function( payload ) {
	var action = payload.action;

	Dispatcher.waitFor( [ PostsStore.dispatchToken ] );

	switch( action.type ) {
		case 'RECEIVE_POSTS_PAGE':
		case 'RECEIVE_UPDATED_POSTS':
			if ( ! action.error && action.data.posts ) {
				scrapeAll( action.data.posts );
			}
			break;
		case 'RECEIVE_UPDATED_POST':
			if ( ! action.error ) {
				scrapePost( action.post );
			}
			break;

	}

} );
Пример #8
0
TagStore.dispatchToken = Dispatcher.register( function( payload ) {
	var action = payload.action;

	Dispatcher.waitFor( [ TermStore.dispatchToken ] );

	switch ( action.type ) {
		case ActionTypes.FETCH_TAGS:
			if ( ! action.siteId ) {
				break;
			}

			updateSiteStatus( action.siteId, { isFetchingPage: true } );
			TagStore.emit( 'change' );
			break;

		case ActionTypes.RECEIVE_TERMS:
			if ( ! action.siteId ) {
				break;
			}
			updateSiteStatus( action.siteId, { isFetchingPage: false } );

			if ( action.error || ! action.data ) {
				break;
			}

			if ( action.data.termType !== 'tags' ) {
				break;
			}

			receiveTags( action.siteId, action.data.terms );
			updateNextPage( action.siteId, action.data );
			TagStore.emit( 'change' );
			break;
		default:
	}

	return true;
} );
Пример #9
0
PostCountsStore.dispatchToken = Dispatcher.register( function( payload ) {
	var action = payload.action;
	var data = action.data;

	Dispatcher.waitFor( [ PostsStore.dispatchToken ] );

	switch ( action.type ) {
		case 'RECEIVE_UPDATED_POSTS':
		case 'RECEIVE_POSTS_PAGE':
			if ( data && data.meta && data.meta.data && data.meta.data.counts ) {
				const responseSource = data.__sync && data.__sync.responseSource;
				setPostCounts( responseSource, data.meta.data.counts );
			}
			break;

		case 'RECEIVE_POST_COUNTS':
			if ( data && data.counts && action.siteId ) {
				const responseSource = data.__sync && data.__sync.responseSource;
				setPostCounts( responseSource, data, action.siteId );
			}
			break;

		case 'RECEIVE_UPDATED_POST':
			if ( action.post && ! postUtils.isPage( action.post ) ) {
				updateCountsWhenPostChanges( action.post, action.original );
			}
			break;
		case 'RECEIVE_POST_BEING_EDITED':
			if ( action.post && ! postUtils.isPage( action.post ) ) {
				if ( action.original ) {
					updateCountsWhenPostChanges( action.post, action.original );
				} else if ( action.isNew ) {
					updateCountsOnNewPost( action.post );
				}
			}
			break;
	}
} );
Пример #10
0
TransactionStore.dispatchToken = Dispatcher.register( function( payload ) {
	var action = payload.action;

	switch ( action.type ) {
		case UpgradesActionTypes.TRANSACTION_DOMAIN_DETAILS_SET:
			setDomainDetails( action.domainDetails );
			break;

		case UpgradesActionTypes.TRANSACTION_PAYMENT_SET:
			setPayment( action.payment );
			break;

		case UpgradesActionTypes.TRANSACTION_NEW_CREDIT_CARD_DETAILS_SET:
			setNewCreditCardDetails( {
				rawDetails: action.rawDetails,
				maskedDetails: action.maskedDetails
			} );
			break;

		case UpgradesActionTypes.TRANSACTION_STEP_SET:
			setStep( action.step );
			break;

		case UpgradesActionTypes.TRANSACTION_RESET:
			reset();
			break;

		case UpgradesActionTypes.CART_ITEM_REMOVE:
			Dispatcher.waitFor( [ CartStore.dispatchToken ] );

			if ( ! cartItems.hasDomainRegistration( CartStore.get() ) && hasDomainDetails( TransactionStore.get() ) ) {
				setDomainDetails( null );
			}
			break;
	}
} );
Пример #11
0
MediaListStore.dispatchToken = Dispatcher.register( function( payload ) {
	const action = payload.action;

	Dispatcher.waitFor( [ MediaStore.dispatchToken ] );

	switch ( action.type ) {
		case 'CHANGE_MEDIA_SOURCE':
			clearSite( action.siteId );
			MediaListStore.emit( 'change' );
			break;

		case 'SET_MEDIA_QUERY':
			if ( action.siteId && action.query ) {
				updateActiveQuery( action.siteId, action.query );
			}

			break;

		case 'FETCH_MEDIA_ITEMS':
			if ( ! action.siteId ) {
				break;
			}

			updateActiveQueryStatus( action.siteId, {
				isFetchingNextPage: true
			} );

			MediaListStore.emit( 'change' );
			break;

		case 'CREATE_MEDIA_ITEM':
		case 'RECEIVE_MEDIA_ITEM':
			if ( action.error && action.siteId && action.id ) {
				// If error occured while uploading, remove item from store
				removeSingle( action.siteId, { ID: action.id } );
				MediaListStore.emit( 'change' );
			}

			if ( ! action.siteId ) {
				break;
			}

			if ( action.error || ! action.data ) {
				break;
			}

			receiveSingle( action.siteId, action.data, action.id );
			sortItemsByDate( action.siteId );
			MediaListStore.emit( 'change' );
			break;

		case 'RECEIVE_MEDIA_ITEMS':
			if ( ! action.siteId ) {
				break;
			}

			updateActiveQueryStatus( action.siteId, {
				isFetchingNextPage: false,
				nextPageHandle: getNextPageMetaFromResponse( action.data )
			} );

			if ( action.error || ! action.data || ( action.query && ! isQuerySame( action.siteId, action.query ) ) ) {
				break;
			}

			receivePage( action.siteId, action.data.media );
			sortItemsByDate( action.siteId );
			MediaListStore.emit( 'change' );
			break;

		case 'REMOVE_MEDIA_ITEM':
			if ( ! action.siteId || ! action.data ) {
				break;
			}

			if ( action.error ) {
				receiveSingle( action.siteId, action.data );
			} else {
				removeSingle( action.siteId, action.data );
			}

			MediaListStore.emit( 'change' );
			break;
	}
} );