mirror of
https://github.com/wassname/talk.git
synced 2026-08-19 12:40:16 +08:00
* feat: Add RadioButton and CheckBox * feat: configure facebook and google auth * feat: configure sso, localAuth and displayName + some tests * test: add integration tests for configure auth * test: more integration tests * feat: add oidc support * test: add oidc integration test * feat: generate sso key initially * fix: import fetchQuery from correct package * fix: admin url * fix: set timezone to utc when testing * refactor: improve route config * fix: remove obsolete line * fix: clientMutationId increment * fix: oidc only create when enabled * fix: copy * test: update snapshots * feat: fixed graphql logging extension * Update src/locales/en-US/admin.ftl Co-Authored-By: cvle <vinh@wikiwi.io> * Apply suggestions from code review Co-Authored-By: cvle <vinh@wikiwi.io> * test: update snapshots * fix: change Local Auth to Email Authentication * fix: copy updates
65 lines
1.9 KiB
TypeScript
65 lines
1.9 KiB
TypeScript
import { graphql } from "react-relay";
|
|
import { Environment } from "relay-runtime";
|
|
|
|
import {
|
|
commitMutationPromiseNormalized,
|
|
createMutationContainer,
|
|
} from "talk-framework/lib/relay";
|
|
|
|
import { RemoveCommentReactionMutation as MutationTypes } from "talk-stream/__generated__/RemoveCommentReactionMutation.graphql";
|
|
import { CreateCommentReactionInput } from "talk-stream/mutations/CreateCommentReactionMutation";
|
|
|
|
const mutation = graphql`
|
|
mutation RemoveCommentReactionMutation($input: CreateCommentReactionInput!) {
|
|
removeCommentReaction(input: $input) {
|
|
comment {
|
|
...ReactionButtonContainer_comment
|
|
}
|
|
clientMutationId
|
|
}
|
|
}
|
|
`;
|
|
|
|
let clientMutationId = 0;
|
|
|
|
function commit(environment: Environment, input: CreateCommentReactionInput) {
|
|
const source = environment.getStore().getSource();
|
|
const currentCount = source.get(
|
|
source.get(source.get(input.commentID)!.actionCounts.__ref)!.reaction.__ref
|
|
)!.total;
|
|
return commitMutationPromiseNormalized<MutationTypes>(environment, {
|
|
mutation,
|
|
variables: {
|
|
input: {
|
|
...input,
|
|
clientMutationId: (clientMutationId++).toString(),
|
|
},
|
|
},
|
|
optimisticResponse: {
|
|
removeCommentReaction: {
|
|
comment: {
|
|
id: input.commentID,
|
|
myActionPresence: {
|
|
reaction: false,
|
|
},
|
|
actionCounts: {
|
|
reaction: {
|
|
total: currentCount - 1,
|
|
},
|
|
},
|
|
},
|
|
clientMutationId: clientMutationId.toString(),
|
|
},
|
|
} as any, // TODO: (cvle) generated types should contain one for the optimistic response.
|
|
});
|
|
}
|
|
|
|
export const withRemoveCommentReactionMutation = createMutationContainer(
|
|
"removeCommentReaction",
|
|
commit
|
|
);
|
|
|
|
export type RemoveCommentReactionMutation = (
|
|
input: CreateCommentReactionInput
|
|
) => Promise<MutationTypes["response"]["removeCommentReaction"]>;
|