Implement SetActiveTabMutation

This commit is contained in:
Chi Vinh Le
2018-09-13 21:49:30 +02:00
parent a3526ab241
commit 4b1e2dd2fd
3 changed files with 49 additions and 0 deletions
@@ -0,0 +1,21 @@
import { Environment, RecordSource } from "relay-runtime";
import { LOCAL_ID } from "talk-framework/lib/relay";
import { createRelayEnvironment } from "talk-framework/testHelpers";
import { commit } from "./SetActiveTabMutation";
let environment: Environment;
const source: RecordSource = new RecordSource();
beforeAll(() => {
environment = createRelayEnvironment({
source,
});
});
it("Sets activeTab", () => {
const tab = "COMMENTS";
commit(environment, { tab });
expect(source.get(LOCAL_ID)!.activeTab).toEqual(tab);
});
@@ -0,0 +1,24 @@
import { commitLocalUpdate, Environment } from "relay-runtime";
import { createMutationContainer, LOCAL_ID } from "talk-framework/lib/relay";
export interface SetActiveTabInput {
tab: "COMMENTS";
}
export type SetActiveTabMutation = (input: SetActiveTabInput) => Promise<void>;
export async function commit(
environment: Environment,
input: SetActiveTabInput
) {
return commitLocalUpdate(environment, store => {
const record = store.get(LOCAL_ID)!;
record.setValue(input.tab, "activeTab");
});
}
export const withSetActiveTabMutation = createMutationContainer(
"setActiveTab",
commit
);
@@ -26,3 +26,7 @@ export {
withSetAuthPopupStateMutation,
SetAuthPopupStateMutation,
} from "./SetAuthPopupStateMutation";
export {
withSetActiveTabMutation,
SetActiveTabMutation,
} from "./SetActiveTabMutation";