// @flow import { sortBy } from "lodash"; import { action, computed } from "mobx"; import { client } from "utils/ApiClient"; import BaseStore from "./BaseStore"; import RootStore from "./RootStore"; import Share from "models/Share"; export default class SharesStore extends BaseStore { actions = ["list", "create"]; constructor(rootStore: RootStore) { super(rootStore, Share); } @computed get orderedData(): Share[] { return sortBy(Array.from(this.data.values()), "createdAt").reverse(); } @action revoke = async (share: Share) => { await client.post("/shares.revoke", { id: share.id }); this.remove(share.id); }; }