re-structure to monorepo.

This commit is contained in:
a.bouhuolia
2023-02-03 01:02:31 +02:00
parent 8242ec64ba
commit 7a0a13f9d5
10400 changed files with 46966 additions and 17223 deletions

View File

@@ -0,0 +1,26 @@
// @ts-nocheck
import ApiService from '@/services/ApiService';
import t from '@/store/types';
export const fetchSubscriptions = () => (dispatch) => new Promise((resolve, reject) => {
ApiService.get('subscription').then((response) => {
dispatch({
type: t.SET_PLAN_SUBSCRIPTIONS_LIST,
payload: {
subscriptions: response.data.subscriptions,
},
});
resolve(response);
}).catch((error) => { reject(error); })
});
export const setSubscriptions = (subscriptions) => {
return {
type: t.SET_PLAN_SUBSCRIPTIONS_LIST,
payload: {
subscriptions,
},
}
};

View File

@@ -0,0 +1,20 @@
// @ts-nocheck
import { createReducer } from '@reduxjs/toolkit';
import t from '@/store/types';
const initialState = {
data: {},
};
export default createReducer(initialState, {
[t.SET_PLAN_SUBSCRIPTIONS_LIST]: (state, action) => {
const { subscriptions } = action.payload;
const _data = {};
subscriptions.forEach((subscription) => {
_data[subscription.id] = subscription;
});
state.data = _data;
},
});

View File

@@ -0,0 +1,46 @@
// @ts-nocheck
import { createSelector } from '@reduxjs/toolkit';
import { includes } from 'lodash';
const subscriptionSelector = (slug) => (state, props) => {
const subscriptions = Object.values(state.subscriptions.data);
return subscriptions.find(
(subscription) => subscription.slug === (slug || props.subscriptionType),
);
};
const subscriptionsSelector = (state, props) => {
const subscriptions = Object.values(state.subscriptions.data);
return subscriptions.filter(
(subscription) =>
includes(props.subscriptionTypes, subscription.slug) ||
!props.subscriptionTypes,
);
};
export const isSubscriptionOnTrialFactory = (slug) =>
createSelector(
subscriptionSelector(slug),
(subscription) => !!subscription?.on_trial,
);
export const isSubscriptionActiveFactory = (slug) =>
createSelector(subscriptionSelector(slug), (subscription) => {
return !!subscription?.active;
});
export const isSubscriptionInactiveFactory = (slug) =>
createSelector(
subscriptionSelector(slug),
(subscription) => !!subscription?.inactive,
);
export const isSubscriptionsInactiveFactory = () =>
createSelector(subscriptionsSelector, (subscriptions) =>
subscriptions.some((subscription) => subscription?.inactive),
);
export const isSubscriptionsActiveFactory = () =>
createSelector(subscriptionsSelector, (subscriptions) =>
subscriptions.some((subscription) => subscription?.active),
);

View File

@@ -0,0 +1,5 @@
// @ts-nocheck
export default {
SET_PLAN_SUBSCRIPTIONS_LIST: 'SET_PLAN_SUBSCRIPTIONS_LIST',
};