langbung01 icon

merchant store

langbung01 | PRO | 07/29/21 08:50:24 AM UTC (Edited) | 0 ⭐ | 782 👁️ | Never ⏰ | []
JavaScript |

1.33 KB

|

None

|

0 👍

/

0 👎

import {action, computed, makeObservable, observable, runInAction} from "mobx";
import {merchantApi, serverApi} from "../../api";
 
export default class MerchantStore {
    merchant = []
    async constructor() {
        makeObservable(this, {
            merchant: observable,
            getMerchant: action
        });
        await this.getMerchant()
    }
    async getMerchant() {
        try {
            let page_state = null
            let firstFetch = true
            let merchant = []
            while (page_state || firstFetch) {
                const { data } = await merchantApi().get('/v1/merchants', {params:{firm:"SHS",page_count:100}});
                merchant = [...merchant, data.merchant]
                page_state = data.page_state
                firstFetch = false
            }
            
            // after await, modifying state again, needs an actions:
            runInAction(async () => {
                this.merchant = merchant
            })
        } catch (error) {
            runInAction(() => {
                this.state = "error";
                this.message = error.response.data.message
            })
        }
    }
    filterMerchant = (filter) => {
        return this.merchant.filter(merchant => {
            return filter.data === merchant.service 
        })
    }
}

Comments