decidim-comments 0.19.0 → 0.22.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/javascripts/decidim/comments/bundle.js +41 -41
- data/app/assets/javascripts/decidim/comments/bundle.js.map +1 -1
- data/app/cells/decidim/comments/comment_activity_cell.rb +1 -1
- data/app/commands/decidim/comments/create_comment.rb +7 -7
- data/app/events/decidim/comments/comment_by_followed_user_group_event.rb +9 -0
- data/app/events/decidim/comments/comment_event.rb +15 -2
- data/app/events/decidim/comments/user_group_mentioned_event.rb +10 -0
- data/app/forms/decidim/comments/comment_form.rb +9 -0
- data/app/frontend/application/icon.component.tsx +16 -4
- data/app/frontend/comments/add_comment_form.component.test.tsx +4 -1
- data/app/frontend/comments/add_comment_form.component.tsx +16 -3
- data/app/frontend/comments/comment.component.test.tsx +1 -1
- data/app/frontend/comments/comment.component.tsx +287 -74
- data/app/frontend/comments/comment_order_selector.component.tsx +26 -7
- data/app/frontend/comments/comments.component.tsx +65 -8
- data/app/frontend/comments/down_vote_button.component.tsx +3 -0
- data/app/frontend/comments/up_vote_button.component.tsx +3 -0
- data/app/frontend/comments/vote_button.component.tsx +4 -0
- data/app/frontend/comments/vote_button_component.test.tsx +14 -8
- data/app/frontend/entry.ts +19 -0
- data/app/frontend/entry_test.ts +2 -0
- data/app/frontend/queries/comments.query.graphql +2 -2
- data/app/frontend/support/schema.ts +745 -744
- data/app/models/decidim/comments/comment.rb +30 -5
- data/app/queries/decidim/comments/metrics/comments_metric_manage.rb +1 -6
- data/app/queries/decidim/comments/sorted_comments.rb +8 -2
- data/app/scrubbers/decidim/comments/user_input_scrubber.rb +20 -0
- data/app/services/decidim/comments/new_comment_notification_creator.rb +28 -3
- data/app/types/decidim/comments/commentable_interface.rb +2 -1
- data/app/types/decidim/comments/commentable_mutation_type.rb +2 -2
- data/config/locales/ar.yml +10 -1
- data/config/locales/bg-BG.yml +6 -0
- data/config/locales/ca.yml +23 -1
- data/config/locales/cs.yml +35 -13
- data/config/locales/da-DK.yml +1 -0
- data/config/locales/de.yml +23 -1
- data/config/locales/el-GR.yml +1 -0
- data/config/locales/el.yml +122 -0
- data/config/locales/en.yml +23 -1
- data/config/locales/es-MX.yml +23 -1
- data/config/locales/es-PY.yml +23 -1
- data/config/locales/es.yml +23 -1
- data/config/locales/et-EE.yml +1 -0
- data/config/locales/eu.yml +4 -1
- data/config/locales/fi-plain.yml +23 -1
- data/config/locales/fi.yml +29 -7
- data/config/locales/fr-CA.yml +122 -0
- data/config/locales/fr.yml +23 -1
- data/config/locales/ga-IE.yml +1 -0
- data/config/locales/gl.yml +4 -1
- data/config/locales/hr-HR.yml +1 -0
- data/config/locales/hu.yml +17 -1
- data/config/locales/id-ID.yml +4 -1
- data/config/locales/is-IS.yml +76 -0
- data/config/locales/it.yml +23 -1
- data/config/locales/ja-JP.yml +120 -0
- data/config/locales/lt-LT.yml +1 -0
- data/config/locales/lv-LV.yml +118 -0
- data/config/locales/mt-MT.yml +1 -0
- data/config/locales/nl.yml +35 -13
- data/config/locales/no.yml +118 -0
- data/config/locales/pl.yml +57 -35
- data/config/locales/pt-BR.yml +5 -2
- data/config/locales/pt.yml +47 -25
- data/config/locales/ro-RO.yml +124 -0
- data/config/locales/ru.yml +12 -1
- data/config/locales/sk-SK.yml +116 -0
- data/config/locales/sk.yml +120 -0
- data/config/locales/sl.yml +4 -0
- data/config/locales/sr-CS.yml +20 -0
- data/config/locales/sv.yml +25 -3
- data/config/locales/tr-TR.yml +4 -1
- data/config/locales/uk.yml +4 -1
- data/db/migrate/20200320105911_index_foreign_keys_in_decidim_comments_comments.rb +7 -0
- data/lib/decidim/comments.rb +1 -0
- data/lib/decidim/comments/markdown.rb +55 -0
- data/lib/decidim/comments/test/shared_examples/comment_event.rb +11 -1
- data/lib/decidim/comments/test/shared_examples/create_comment_context.rb +3 -2
- data/lib/decidim/comments/version.rb +1 -1
- metadata +46 -9
@@ -43,28 +43,47 @@ class CommentOrderSelector extends React.Component<CommentOrderSelectorProps, Co
|
|
43
43
|
<ul
|
44
44
|
className="dropdown menu"
|
45
45
|
data-dropdown-menu="data-dropdown-menu"
|
46
|
+
data-autoclose="false"
|
47
|
+
data-disable-hover="true"
|
48
|
+
data-click-open="true"
|
49
|
+
data-close-on-click="true"
|
50
|
+
tabIndex={-1}
|
46
51
|
ref={this.setDropdown}
|
47
52
|
>
|
48
|
-
<li>
|
49
|
-
<a
|
50
|
-
|
53
|
+
<li className="is-dropdown-submenu-parent" tabIndex={-1}>
|
54
|
+
<a
|
55
|
+
href="#"
|
56
|
+
id="comments-order-menu-control"
|
57
|
+
aria-label={I18n.t("components.comment_order_selector.title")}
|
58
|
+
aria-controls="comments-order-menu"
|
59
|
+
aria-haspopup="true"
|
60
|
+
>
|
61
|
+
{I18n.t(`components.comment_order_selector.order.${orderBy}`)}
|
62
|
+
</a>
|
63
|
+
<ul
|
64
|
+
className="menu is-dropdown-submenu"
|
65
|
+
id="language-chooser-menu"
|
66
|
+
role="menu"
|
67
|
+
aria-labelledby="comments-order-menu-control"
|
68
|
+
tabIndex={-1}
|
69
|
+
>
|
51
70
|
<li>
|
52
|
-
<a href="" className="test" onClick={this.updateOrder("best_rated")} >
|
71
|
+
<a href="#" className="test" onClick={this.updateOrder("best_rated")} tabIndex={-1}>
|
53
72
|
{I18n.t("components.comment_order_selector.order.best_rated")}
|
54
73
|
</a>
|
55
74
|
</li>
|
56
75
|
<li>
|
57
|
-
<a href="" onClick={this.updateOrder("recent")} >
|
76
|
+
<a href="#" onClick={this.updateOrder("recent")} tabIndex={-1}>
|
58
77
|
{I18n.t("components.comment_order_selector.order.recent")}
|
59
78
|
</a>
|
60
79
|
</li>
|
61
80
|
<li>
|
62
|
-
<a href="" onClick={this.updateOrder("older")} >
|
81
|
+
<a href="#" onClick={this.updateOrder("older")} tabIndex={-1}>
|
63
82
|
{I18n.t("components.comment_order_selector.order.older")}
|
64
83
|
</a>
|
65
84
|
</li>
|
66
85
|
<li>
|
67
|
-
<a href="" onClick={this.updateOrder("most_discussed")} >
|
86
|
+
<a href="" onClick={this.updateOrder("most_discussed")} tabIndex={-1}>
|
68
87
|
{I18n.t("components.comment_order_selector.order.most_discussed")}
|
69
88
|
</a>
|
70
89
|
</li>
|
@@ -12,11 +12,12 @@ import {
|
|
12
12
|
GetCommentsQueryVariables
|
13
13
|
} from "../support/schema";
|
14
14
|
|
15
|
-
const { I18n } = require("react-i18nify");
|
15
|
+
const { I18n, Translate } = require("react-i18nify");
|
16
16
|
|
17
17
|
interface CommentsProps extends GetCommentsQuery {
|
18
18
|
loading?: boolean;
|
19
19
|
orderBy: string;
|
20
|
+
singleCommentId?: string;
|
20
21
|
reorderComments: (orderBy: string) => void;
|
21
22
|
}
|
22
23
|
|
@@ -37,9 +38,12 @@ export class Comments extends React.Component<CommentsProps> {
|
|
37
38
|
};
|
38
39
|
|
39
40
|
public render() {
|
40
|
-
const { commentable: {
|
41
|
+
const { commentable: { totalCommentsCount = 0 }, singleCommentId, loading } = this.props;
|
41
42
|
let commentClasses = "comments";
|
42
43
|
let commentHeader = I18n.t("components.comments.title", { count: totalCommentsCount });
|
44
|
+
if (singleCommentId && singleCommentId !== "") {
|
45
|
+
commentHeader = I18n.t("components.comments.comment_details_title");
|
46
|
+
}
|
43
47
|
|
44
48
|
if (loading) {
|
45
49
|
commentClasses += " loading-comments";
|
@@ -53,11 +57,9 @@ export class Comments extends React.Component<CommentsProps> {
|
|
53
57
|
<h2 className="order-by__text section-heading">
|
54
58
|
{commentHeader}
|
55
59
|
</h2>
|
56
|
-
|
57
|
-
reorderComments={reorderComments}
|
58
|
-
defaultOrderBy={orderBy}
|
59
|
-
/>
|
60
|
+
{this._renderCommentOrderSelector()}
|
60
61
|
</div>
|
62
|
+
{this._renderSingleCommentWarning()}
|
61
63
|
{this._renderBlockedCommentsWarning()}
|
62
64
|
{this._renderCommentThreads()}
|
63
65
|
{this._renderAddCommentForm()}
|
@@ -67,6 +69,54 @@ export class Comments extends React.Component<CommentsProps> {
|
|
67
69
|
);
|
68
70
|
}
|
69
71
|
|
72
|
+
/**
|
73
|
+
* Renders warning message when viewing a single comment.
|
74
|
+
* @private
|
75
|
+
* @returns {Void|DOMElement} - A warning message or nothing.
|
76
|
+
*/
|
77
|
+
private _renderSingleCommentWarning() {
|
78
|
+
const { singleCommentId, reorderComments, orderBy } = this.props;
|
79
|
+
|
80
|
+
if (singleCommentId && singleCommentId !== "") {
|
81
|
+
const newUrl = `${window.location.pathname}${window.location.search.replace(`commentId=${singleCommentId}`, "")}`;
|
82
|
+
|
83
|
+
return (
|
84
|
+
<div className="callout secondary">
|
85
|
+
<h5>{I18n.t("components.comments.single_comment_warning_title")}</h5>
|
86
|
+
<p>
|
87
|
+
<Translate
|
88
|
+
value="components.comments.single_comment_warning"
|
89
|
+
url={newUrl}
|
90
|
+
dangerousHTML={true}
|
91
|
+
/>
|
92
|
+
</p>
|
93
|
+
</div>
|
94
|
+
);
|
95
|
+
}
|
96
|
+
|
97
|
+
return null;
|
98
|
+
}
|
99
|
+
|
100
|
+
/**
|
101
|
+
* Renders an order selector.
|
102
|
+
* @private
|
103
|
+
* @returns {Void|DOMElement} - A warning message or nothing.
|
104
|
+
*/
|
105
|
+
private _renderCommentOrderSelector() {
|
106
|
+
const { singleCommentId, reorderComments, orderBy } = this.props;
|
107
|
+
|
108
|
+
if (singleCommentId && singleCommentId !== "") {
|
109
|
+
return null;
|
110
|
+
}
|
111
|
+
|
112
|
+
return (
|
113
|
+
<CommentOrderSelector
|
114
|
+
reorderComments={reorderComments}
|
115
|
+
defaultOrderBy={orderBy}
|
116
|
+
/>
|
117
|
+
);
|
118
|
+
}
|
119
|
+
|
70
120
|
/**
|
71
121
|
* Renders a warning message if the commentable doesn't accept new comments.
|
72
122
|
* @private
|
@@ -135,9 +185,13 @@ export class Comments extends React.Component<CommentsProps> {
|
|
135
185
|
* @returns {Void|ReactComponent} - A AddCommentForm component or nothing
|
136
186
|
*/
|
137
187
|
private _renderAddCommentForm() {
|
138
|
-
const { session, commentable, orderBy } = this.props;
|
188
|
+
const { session, commentable, orderBy, singleCommentId } = this.props;
|
139
189
|
const { acceptsNewComments, commentsHaveAlignment, userAllowedToComment } = commentable;
|
140
190
|
|
191
|
+
if (singleCommentId && singleCommentId !== "") {
|
192
|
+
return null;
|
193
|
+
}
|
194
|
+
|
141
195
|
if (acceptsNewComments && userAllowedToComment) {
|
142
196
|
return (
|
143
197
|
<AddCommentForm
|
@@ -176,6 +230,7 @@ const CommentsWithData: any = graphql<GetCommentsQuery, CommentsProps>(commentsQ
|
|
176
230
|
session,
|
177
231
|
commentable,
|
178
232
|
orderBy: ownProps.orderBy,
|
233
|
+
singleCommentId: ownProps.singleCommentId,
|
179
234
|
reorderComments: (orderBy: string) => {
|
180
235
|
return refetch({
|
181
236
|
orderBy
|
@@ -187,6 +242,7 @@ const CommentsWithData: any = graphql<GetCommentsQuery, CommentsProps>(commentsQ
|
|
187
242
|
})(Comments);
|
188
243
|
|
189
244
|
export interface CommentsApplicationProps extends GetCommentsQueryVariables {
|
245
|
+
singleCommentId: string;
|
190
246
|
locale: string;
|
191
247
|
}
|
192
248
|
|
@@ -195,12 +251,13 @@ export interface CommentsApplicationProps extends GetCommentsQueryVariables {
|
|
195
251
|
* connect it with Apollo client and store.
|
196
252
|
* @returns {ReactComponent} - A component wrapped within an Application component
|
197
253
|
*/
|
198
|
-
const CommentsApplication: React.SFC<CommentsApplicationProps> = ({ locale, commentableId, commentableType }) => (
|
254
|
+
const CommentsApplication: React.SFC<CommentsApplicationProps> = ({ locale, commentableId, commentableType, singleCommentId }) => (
|
199
255
|
<Application locale={locale}>
|
200
256
|
<CommentsWithData
|
201
257
|
commentableId={commentableId}
|
202
258
|
commentableType={commentableType}
|
203
259
|
orderBy="older"
|
260
|
+
singleCommentId={singleCommentId}
|
204
261
|
/>
|
205
262
|
</Application>
|
206
263
|
);
|
@@ -12,6 +12,8 @@ import {
|
|
12
12
|
GetCommentsQuery
|
13
13
|
} from "../support/schema";
|
14
14
|
|
15
|
+
const { I18n } = require("react-i18nify");
|
16
|
+
|
15
17
|
interface DownVoteButtonProps {
|
16
18
|
session: AddCommentFormSessionFragment & {
|
17
19
|
user: any;
|
@@ -42,6 +44,7 @@ export const DownVoteButton: React.SFC<DownVoteButtonProps> = ({
|
|
42
44
|
<VoteButton
|
43
45
|
buttonClassName="comment__votes--down"
|
44
46
|
iconName="icon-chevron-bottom"
|
47
|
+
text={I18n.t("components.down_vote_button.text")}
|
45
48
|
votes={downVotes}
|
46
49
|
voteAction={downVote}
|
47
50
|
disabled={disabled}
|
@@ -3,6 +3,8 @@ import { graphql, MutationFunc } from "react-apollo";
|
|
3
3
|
|
4
4
|
import VoteButton from "./vote_button.component";
|
5
5
|
|
6
|
+
const { I18n } = require("react-i18nify");
|
7
|
+
|
6
8
|
import {
|
7
9
|
AddCommentFormCommentableFragment,
|
8
10
|
AddCommentFormSessionFragment,
|
@@ -42,6 +44,7 @@ export const UpVoteButton: React.SFC<UpVoteButtonProps> = ({
|
|
42
44
|
<VoteButton
|
43
45
|
buttonClassName="comment__votes--up"
|
44
46
|
iconName="icon-chevron-top"
|
47
|
+
text={I18n.t("components.up_vote_button.text")}
|
45
48
|
votes={upVotes}
|
46
49
|
voteAction={upVote}
|
47
50
|
disabled={disabled}
|
@@ -4,6 +4,7 @@ import Icon from "../application/icon.component";
|
|
4
4
|
interface VoteButtonProps {
|
5
5
|
buttonClassName: string;
|
6
6
|
iconName: string;
|
7
|
+
text: string;
|
7
8
|
votes: number;
|
8
9
|
voteAction?: () => void;
|
9
10
|
disabled?: boolean;
|
@@ -18,6 +19,7 @@ const preventDefault = (event: any) => {
|
|
18
19
|
const VoteButton: React.SFC<VoteButtonProps> = ({
|
19
20
|
buttonClassName,
|
20
21
|
iconName,
|
22
|
+
text,
|
21
23
|
votes,
|
22
24
|
voteAction,
|
23
25
|
disabled,
|
@@ -28,8 +30,10 @@ const VoteButton: React.SFC<VoteButtonProps> = ({
|
|
28
30
|
className={`${buttonClassName} ${selectedClass}`}
|
29
31
|
onClick={userLoggedIn ? voteAction : preventDefault}
|
30
32
|
disabled={disabled}
|
33
|
+
title={text}
|
31
34
|
data-open={userLoggedIn ? null : "loginModal"}
|
32
35
|
>
|
36
|
+
<span className="show-for-sr">{text}</span>
|
33
37
|
<Icon name={iconName} iconExtraClassName="icon--small" />
|
34
38
|
{` ${votes}`}
|
35
39
|
</button>
|
@@ -13,44 +13,50 @@ describe("<VoteButton />", () => {
|
|
13
13
|
});
|
14
14
|
|
15
15
|
it("should render the number of votes passed as a prop", () => {
|
16
|
-
const wrapper = shallow(<VoteButton votes={10} buttonClassName="vote-button" iconName="vote-icon" voteAction={voteAction} userLoggedIn={true} />);
|
16
|
+
const wrapper = shallow(<VoteButton votes={10} buttonClassName="vote-button" iconName="vote-icon" text="Test" voteAction={voteAction} userLoggedIn={true} />);
|
17
17
|
expect(wrapper.find("button").text()).toMatch(/10/);
|
18
18
|
});
|
19
19
|
|
20
20
|
it("should render a button with the given buttonClassName", () => {
|
21
|
-
const wrapper = shallow(<VoteButton votes={10} buttonClassName="vote-button" iconName="vote-icon" voteAction={voteAction} userLoggedIn={true} />);
|
21
|
+
const wrapper = shallow(<VoteButton votes={10} buttonClassName="vote-button" iconName="vote-icon" text="Test" voteAction={voteAction} userLoggedIn={true} />);
|
22
22
|
expect(wrapper.find("button.vote-button").exists()).toBeTruthy();
|
23
23
|
});
|
24
24
|
|
25
25
|
it("should render a Icon component with the correct name prop", () => {
|
26
|
-
const wrapper = shallow(<VoteButton votes={10} buttonClassName="vote-button" iconName="vote-icon" voteAction={voteAction} userLoggedIn={true} />);
|
26
|
+
const wrapper = shallow(<VoteButton votes={10} buttonClassName="vote-button" iconName="vote-icon" text="Test" voteAction={voteAction} userLoggedIn={true} />);
|
27
27
|
expect(wrapper.find(Icon).prop("name")).toEqual("vote-icon");
|
28
28
|
});
|
29
29
|
|
30
|
+
it("should render a button with the text as title attribute and screen reader visible element", () => {
|
31
|
+
const wrapper = shallow(<VoteButton votes={10} buttonClassName="vote-button" iconName="vote-icon" text="Test" voteAction={voteAction} userLoggedIn={true} />);
|
32
|
+
expect(wrapper.find("button").prop("title")).toBe("Test");
|
33
|
+
expect(wrapper.find("button span.show-for-sr").text()).toEqual("Test");
|
34
|
+
});
|
35
|
+
|
30
36
|
it("should call the voteAction prop on click", () => {
|
31
|
-
const wrapper = shallow(<VoteButton votes={10} buttonClassName="vote-button" iconName="vote-icon" voteAction={voteAction} userLoggedIn={true} />);
|
37
|
+
const wrapper = shallow(<VoteButton votes={10} buttonClassName="vote-button" iconName="vote-icon" text="Test" voteAction={voteAction} userLoggedIn={true} />);
|
32
38
|
wrapper.find("button").simulate("click");
|
33
39
|
expect(voteAction).toHaveBeenCalled();
|
34
40
|
});
|
35
41
|
|
36
42
|
it("should disable the button based on the disabled prop", () => {
|
37
|
-
const wrapper = shallow(<VoteButton votes={10} buttonClassName="vote-button" iconName="vote-icon" voteAction={voteAction} disabled={true} userLoggedIn={true} />);
|
43
|
+
const wrapper = shallow(<VoteButton votes={10} buttonClassName="vote-button" iconName="vote-icon" text="Test" voteAction={voteAction} disabled={true} userLoggedIn={true} />);
|
38
44
|
expect(wrapper.find("button").props()).toHaveProperty("disabled");
|
39
45
|
});
|
40
46
|
|
41
47
|
it("should render a button with the given selectedClass", () => {
|
42
|
-
const wrapper = shallow(<VoteButton votes={10} buttonClassName="vote-button" iconName="vote-icon" voteAction={voteAction} disabled={true} selectedClass="is-vote-selected" userLoggedIn={true} />);
|
48
|
+
const wrapper = shallow(<VoteButton votes={10} buttonClassName="vote-button" iconName="vote-icon" text="Test" voteAction={voteAction} disabled={true} selectedClass="is-vote-selected" userLoggedIn={true} />);
|
43
49
|
expect(wrapper.find(".is-vote-selected").exists()).toBeTruthy();
|
44
50
|
});
|
45
51
|
|
46
52
|
describe("when userLoggedIn prop is false", () => {
|
47
53
|
it("should add data-open prop as 'loginModal' to the button", () => {
|
48
|
-
const wrapper = shallow(<VoteButton votes={10} buttonClassName="vote-button" iconName="vote-icon" voteAction={voteAction} userLoggedIn={false} />);
|
54
|
+
const wrapper = shallow(<VoteButton votes={10} buttonClassName="vote-button" iconName="vote-icon" text="Test" voteAction={voteAction} userLoggedIn={false} />);
|
49
55
|
expect(wrapper.find("button").prop("data-open")).toBe("loginModal");
|
50
56
|
});
|
51
57
|
|
52
58
|
it("should call the event preventDefault method", () => {
|
53
|
-
const wrapper = shallow(<VoteButton votes={10} buttonClassName="vote-button" iconName="vote-icon" voteAction={voteAction} userLoggedIn={false} />);
|
59
|
+
const wrapper = shallow(<VoteButton votes={10} buttonClassName="vote-button" iconName="vote-icon" text="Test" voteAction={voteAction} userLoggedIn={false} />);
|
54
60
|
wrapper.find("button").simulate("click", { preventDefault });
|
55
61
|
expect(preventDefault).toHaveBeenCalled();
|
56
62
|
});
|
data/app/frontend/entry.ts
CHANGED
@@ -6,13 +6,32 @@ import loadTranslations from "./support/load_translations";
|
|
6
6
|
|
7
7
|
window.DecidimComments = window.DecidimComments || {};
|
8
8
|
|
9
|
+
interface StorageDict {
|
10
|
+
[key: string]: string;
|
11
|
+
}
|
12
|
+
|
9
13
|
window.DecidimComments.renderCommentsComponent = (nodeId: string, props: CommentsApplicationProps) => {
|
10
14
|
const node = window.$(`#${nodeId}`)[0];
|
15
|
+
const queryDict: StorageDict = {};
|
16
|
+
window
|
17
|
+
.location
|
18
|
+
.search
|
19
|
+
.substr(1)
|
20
|
+
.split("&")
|
21
|
+
.forEach(item => queryDict[item.split("=")[0]] = item.split("=")[1]);
|
22
|
+
|
23
|
+
props = { ...props, singleCommentId: queryDict.commentId };
|
11
24
|
|
12
25
|
ReactDOM.render(
|
13
26
|
React.createElement(Comments, props),
|
14
27
|
node
|
15
28
|
);
|
29
|
+
|
30
|
+
if (queryDict.commentId) {
|
31
|
+
$([document.documentElement, document.body]).animate({
|
32
|
+
scrollTop: $("#comments").offset()!.top
|
33
|
+
}, 2000);
|
34
|
+
}
|
16
35
|
};
|
17
36
|
|
18
37
|
// Load component locales from yaml files
|
data/app/frontend/entry_test.ts
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
#import "../fragments/add_comment_form_session.fragment.graphql"
|
2
2
|
#import "../fragments/comment_thread.fragment.graphql"
|
3
3
|
#import "../fragments/add_comment_form_commentable.fragment.graphql"
|
4
|
-
query GetComments($commentableId: String!, $commentableType: String!, $orderBy: String) {
|
4
|
+
query GetComments($commentableId: String!, $commentableType: String!, $orderBy: String, $singleCommentId: String) {
|
5
5
|
session {
|
6
6
|
user {
|
7
7
|
name
|
@@ -17,7 +17,7 @@ query GetComments($commentableId: String!, $commentableType: String!, $orderBy:
|
|
17
17
|
commentsHaveAlignment
|
18
18
|
commentsHaveVotes
|
19
19
|
totalCommentsCount
|
20
|
-
comments(orderBy: $orderBy) {
|
20
|
+
comments(orderBy: $orderBy, singleCommentId: $singleCommentId) {
|
21
21
|
id
|
22
22
|
...CommentThread
|
23
23
|
}
|
@@ -11,9 +11,9 @@ export interface addCommentMutationVariables {
|
|
11
11
|
|
12
12
|
export interface addCommentMutation {
|
13
13
|
// A commentable
|
14
|
-
commentable:
|
14
|
+
commentable: {
|
15
15
|
// Add a new comment to a commentable
|
16
|
-
addComment:
|
16
|
+
addComment: {
|
17
17
|
// Check if the commentable has comments
|
18
18
|
hasComments: boolean,
|
19
19
|
// The Comment's unique ID
|
@@ -31,33 +31,33 @@ export interface addCommentMutation {
|
|
31
31
|
// The creation date of the comment in relative format
|
32
32
|
formattedCreatedAt: string,
|
33
33
|
// The resource author
|
34
|
-
author: (
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
34
|
+
author: ({
|
35
|
+
// The author's name
|
36
|
+
name: string,
|
37
|
+
// The author's nickname
|
38
|
+
nickname: string,
|
39
|
+
// The author's avatar url
|
40
|
+
avatarUrl: string,
|
41
|
+
// The author's profile path
|
42
|
+
profilePath: string,
|
43
|
+
// Whether the author's account has been deleted or not
|
44
|
+
deleted: boolean,
|
45
|
+
// The author's badge icon
|
46
|
+
badge: string,
|
47
|
+
} | {
|
48
|
+
// The author's name
|
49
|
+
name: string,
|
50
|
+
// The author's nickname
|
51
|
+
nickname: string,
|
52
|
+
// The author's avatar url
|
53
|
+
avatarUrl: string,
|
54
|
+
// The author's profile path
|
55
|
+
profilePath: string,
|
56
|
+
// Whether the author's account has been deleted or not
|
57
|
+
deleted: boolean,
|
58
|
+
// The author's badge icon
|
59
|
+
badge: string,
|
60
|
+
}
|
61
61
|
),
|
62
62
|
// Whether the object can have new comments or not
|
63
63
|
acceptsNewComments: boolean,
|
@@ -75,7 +75,7 @@ export interface addCommentMutation {
|
|
75
75
|
downVoted: boolean,
|
76
76
|
// The number of comment's downVotes
|
77
77
|
downVotes: number,
|
78
|
-
comments:
|
78
|
+
comments: Array<{
|
79
79
|
// The Comment's unique ID
|
80
80
|
id: string,
|
81
81
|
// The Comment's signed global id
|
@@ -91,33 +91,33 @@ export interface addCommentMutation {
|
|
91
91
|
// The creation date of the comment in relative format
|
92
92
|
formattedCreatedAt: string,
|
93
93
|
// The resource author
|
94
|
-
author: (
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
94
|
+
author: ({
|
95
|
+
// The author's name
|
96
|
+
name: string,
|
97
|
+
// The author's nickname
|
98
|
+
nickname: string,
|
99
|
+
// The author's avatar url
|
100
|
+
avatarUrl: string,
|
101
|
+
// The author's profile path
|
102
|
+
profilePath: string,
|
103
|
+
// Whether the author's account has been deleted or not
|
104
|
+
deleted: boolean,
|
105
|
+
// The author's badge icon
|
106
|
+
badge: string,
|
107
|
+
} | {
|
108
|
+
// The author's name
|
109
|
+
name: string,
|
110
|
+
// The author's nickname
|
111
|
+
nickname: string,
|
112
|
+
// The author's avatar url
|
113
|
+
avatarUrl: string,
|
114
|
+
// The author's profile path
|
115
|
+
profilePath: string,
|
116
|
+
// Whether the author's account has been deleted or not
|
117
|
+
deleted: boolean,
|
118
|
+
// The author's badge icon
|
119
|
+
badge: string,
|
120
|
+
}
|
121
121
|
),
|
122
122
|
// Check if the commentable has comments
|
123
123
|
hasComments: boolean,
|
@@ -137,7 +137,7 @@ export interface addCommentMutation {
|
|
137
137
|
downVoted: boolean,
|
138
138
|
// The number of comment's downVotes
|
139
139
|
downVotes: number,
|
140
|
-
comments:
|
140
|
+
comments: Array<{
|
141
141
|
// The Comment's unique ID
|
142
142
|
id: string,
|
143
143
|
// The Comment's signed global id
|
@@ -153,33 +153,33 @@ export interface addCommentMutation {
|
|
153
153
|
// The creation date of the comment in relative format
|
154
154
|
formattedCreatedAt: string,
|
155
155
|
// The resource author
|
156
|
-
author: (
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
156
|
+
author: ({
|
157
|
+
// The author's name
|
158
|
+
name: string,
|
159
|
+
// The author's nickname
|
160
|
+
nickname: string,
|
161
|
+
// The author's avatar url
|
162
|
+
avatarUrl: string,
|
163
|
+
// The author's profile path
|
164
|
+
profilePath: string,
|
165
|
+
// Whether the author's account has been deleted or not
|
166
|
+
deleted: boolean,
|
167
|
+
// The author's badge icon
|
168
|
+
badge: string,
|
169
|
+
} | {
|
170
|
+
// The author's name
|
171
|
+
name: string,
|
172
|
+
// The author's nickname
|
173
|
+
nickname: string,
|
174
|
+
// The author's avatar url
|
175
|
+
avatarUrl: string,
|
176
|
+
// The author's profile path
|
177
|
+
profilePath: string,
|
178
|
+
// Whether the author's account has been deleted or not
|
179
|
+
deleted: boolean,
|
180
|
+
// The author's badge icon
|
181
|
+
badge: string,
|
182
|
+
}
|
183
183
|
),
|
184
184
|
// Check if the commentable has comments
|
185
185
|
hasComments: boolean,
|
@@ -199,7 +199,7 @@ export interface addCommentMutation {
|
|
199
199
|
downVoted: boolean,
|
200
200
|
// The number of comment's downVotes
|
201
201
|
downVotes: number,
|
202
|
-
comments:
|
202
|
+
comments: Array<{
|
203
203
|
// The Comment's unique ID
|
204
204
|
id: string,
|
205
205
|
// The Comment's signed global id
|
@@ -215,33 +215,33 @@ export interface addCommentMutation {
|
|
215
215
|
// The creation date of the comment in relative format
|
216
216
|
formattedCreatedAt: string,
|
217
217
|
// The resource author
|
218
|
-
author: (
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
218
|
+
author: ({
|
219
|
+
// The author's name
|
220
|
+
name: string,
|
221
|
+
// The author's nickname
|
222
|
+
nickname: string,
|
223
|
+
// The author's avatar url
|
224
|
+
avatarUrl: string,
|
225
|
+
// The author's profile path
|
226
|
+
profilePath: string,
|
227
|
+
// Whether the author's account has been deleted or not
|
228
|
+
deleted: boolean,
|
229
|
+
// The author's badge icon
|
230
|
+
badge: string,
|
231
|
+
} | {
|
232
|
+
// The author's name
|
233
|
+
name: string,
|
234
|
+
// The author's nickname
|
235
|
+
nickname: string,
|
236
|
+
// The author's avatar url
|
237
|
+
avatarUrl: string,
|
238
|
+
// The author's profile path
|
239
|
+
profilePath: string,
|
240
|
+
// Whether the author's account has been deleted or not
|
241
|
+
deleted: boolean,
|
242
|
+
// The author's badge icon
|
243
|
+
badge: string,
|
244
|
+
}
|
245
245
|
),
|
246
246
|
// Check if the commentable has comments
|
247
247
|
hasComments: boolean,
|
@@ -261,9 +261,9 @@ export interface addCommentMutation {
|
|
261
261
|
downVoted: boolean,
|
262
262
|
// The number of comment's downVotes
|
263
263
|
downVotes: number,
|
264
|
-
}
|
265
|
-
}
|
266
|
-
}
|
264
|
+
}>,
|
265
|
+
}>,
|
266
|
+
}>,
|
267
267
|
} | null,
|
268
268
|
} | null,
|
269
269
|
};
|
@@ -274,8 +274,8 @@ export interface DownVoteMutationVariables {
|
|
274
274
|
|
275
275
|
export interface DownVoteMutation {
|
276
276
|
// A comment
|
277
|
-
comment:
|
278
|
-
downVote:
|
277
|
+
comment: {
|
278
|
+
downVote: {
|
279
279
|
// The Comment's unique ID
|
280
280
|
id: string,
|
281
281
|
// The Comment's signed global id
|
@@ -291,33 +291,33 @@ export interface DownVoteMutation {
|
|
291
291
|
// The creation date of the comment in relative format
|
292
292
|
formattedCreatedAt: string,
|
293
293
|
// The resource author
|
294
|
-
author: (
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
294
|
+
author: ({
|
295
|
+
// The author's name
|
296
|
+
name: string,
|
297
|
+
// The author's nickname
|
298
|
+
nickname: string,
|
299
|
+
// The author's avatar url
|
300
|
+
avatarUrl: string,
|
301
|
+
// The author's profile path
|
302
|
+
profilePath: string,
|
303
|
+
// Whether the author's account has been deleted or not
|
304
|
+
deleted: boolean,
|
305
|
+
// The author's badge icon
|
306
|
+
badge: string,
|
307
|
+
} | {
|
308
|
+
// The author's name
|
309
|
+
name: string,
|
310
|
+
// The author's nickname
|
311
|
+
nickname: string,
|
312
|
+
// The author's avatar url
|
313
|
+
avatarUrl: string,
|
314
|
+
// The author's profile path
|
315
|
+
profilePath: string,
|
316
|
+
// Whether the author's account has been deleted or not
|
317
|
+
deleted: boolean,
|
318
|
+
// The author's badge icon
|
319
|
+
badge: string,
|
320
|
+
}
|
321
321
|
),
|
322
322
|
// Check if the commentable has comments
|
323
323
|
hasComments: boolean,
|
@@ -337,7 +337,7 @@ export interface DownVoteMutation {
|
|
337
337
|
downVoted: boolean,
|
338
338
|
// The number of comment's downVotes
|
339
339
|
downVotes: number,
|
340
|
-
comments:
|
340
|
+
comments: Array<{
|
341
341
|
// The Comment's unique ID
|
342
342
|
id: string,
|
343
343
|
// The Comment's signed global id
|
@@ -353,33 +353,33 @@ export interface DownVoteMutation {
|
|
353
353
|
// The creation date of the comment in relative format
|
354
354
|
formattedCreatedAt: string,
|
355
355
|
// The resource author
|
356
|
-
author: (
|
357
|
-
|
358
|
-
|
359
|
-
|
360
|
-
|
361
|
-
|
362
|
-
|
363
|
-
|
364
|
-
|
365
|
-
|
366
|
-
|
367
|
-
|
368
|
-
|
369
|
-
|
370
|
-
|
371
|
-
|
372
|
-
|
373
|
-
|
374
|
-
|
375
|
-
|
376
|
-
|
377
|
-
|
378
|
-
|
379
|
-
|
380
|
-
|
381
|
-
|
382
|
-
|
356
|
+
author: ({
|
357
|
+
// The author's name
|
358
|
+
name: string,
|
359
|
+
// The author's nickname
|
360
|
+
nickname: string,
|
361
|
+
// The author's avatar url
|
362
|
+
avatarUrl: string,
|
363
|
+
// The author's profile path
|
364
|
+
profilePath: string,
|
365
|
+
// Whether the author's account has been deleted or not
|
366
|
+
deleted: boolean,
|
367
|
+
// The author's badge icon
|
368
|
+
badge: string,
|
369
|
+
} | {
|
370
|
+
// The author's name
|
371
|
+
name: string,
|
372
|
+
// The author's nickname
|
373
|
+
nickname: string,
|
374
|
+
// The author's avatar url
|
375
|
+
avatarUrl: string,
|
376
|
+
// The author's profile path
|
377
|
+
profilePath: string,
|
378
|
+
// Whether the author's account has been deleted or not
|
379
|
+
deleted: boolean,
|
380
|
+
// The author's badge icon
|
381
|
+
badge: string,
|
382
|
+
}
|
383
383
|
),
|
384
384
|
// Check if the commentable has comments
|
385
385
|
hasComments: boolean,
|
@@ -399,7 +399,7 @@ export interface DownVoteMutation {
|
|
399
399
|
downVoted: boolean,
|
400
400
|
// The number of comment's downVotes
|
401
401
|
downVotes: number,
|
402
|
-
comments:
|
402
|
+
comments: Array<{
|
403
403
|
// The Comment's unique ID
|
404
404
|
id: string,
|
405
405
|
// The Comment's signed global id
|
@@ -415,33 +415,33 @@ export interface DownVoteMutation {
|
|
415
415
|
// The creation date of the comment in relative format
|
416
416
|
formattedCreatedAt: string,
|
417
417
|
// The resource author
|
418
|
-
author: (
|
419
|
-
|
420
|
-
|
421
|
-
|
422
|
-
|
423
|
-
|
424
|
-
|
425
|
-
|
426
|
-
|
427
|
-
|
428
|
-
|
429
|
-
|
430
|
-
|
431
|
-
|
432
|
-
|
433
|
-
|
434
|
-
|
435
|
-
|
436
|
-
|
437
|
-
|
438
|
-
|
439
|
-
|
440
|
-
|
441
|
-
|
442
|
-
|
443
|
-
|
444
|
-
|
418
|
+
author: ({
|
419
|
+
// The author's name
|
420
|
+
name: string,
|
421
|
+
// The author's nickname
|
422
|
+
nickname: string,
|
423
|
+
// The author's avatar url
|
424
|
+
avatarUrl: string,
|
425
|
+
// The author's profile path
|
426
|
+
profilePath: string,
|
427
|
+
// Whether the author's account has been deleted or not
|
428
|
+
deleted: boolean,
|
429
|
+
// The author's badge icon
|
430
|
+
badge: string,
|
431
|
+
} | {
|
432
|
+
// The author's name
|
433
|
+
name: string,
|
434
|
+
// The author's nickname
|
435
|
+
nickname: string,
|
436
|
+
// The author's avatar url
|
437
|
+
avatarUrl: string,
|
438
|
+
// The author's profile path
|
439
|
+
profilePath: string,
|
440
|
+
// Whether the author's account has been deleted or not
|
441
|
+
deleted: boolean,
|
442
|
+
// The author's badge icon
|
443
|
+
badge: string,
|
444
|
+
}
|
445
445
|
),
|
446
446
|
// Check if the commentable has comments
|
447
447
|
hasComments: boolean,
|
@@ -461,7 +461,7 @@ export interface DownVoteMutation {
|
|
461
461
|
downVoted: boolean,
|
462
462
|
// The number of comment's downVotes
|
463
463
|
downVotes: number,
|
464
|
-
comments:
|
464
|
+
comments: Array<{
|
465
465
|
// The Comment's unique ID
|
466
466
|
id: string,
|
467
467
|
// The Comment's signed global id
|
@@ -477,33 +477,33 @@ export interface DownVoteMutation {
|
|
477
477
|
// The creation date of the comment in relative format
|
478
478
|
formattedCreatedAt: string,
|
479
479
|
// The resource author
|
480
|
-
author: (
|
481
|
-
|
482
|
-
|
483
|
-
|
484
|
-
|
485
|
-
|
486
|
-
|
487
|
-
|
488
|
-
|
489
|
-
|
490
|
-
|
491
|
-
|
492
|
-
|
493
|
-
|
494
|
-
|
495
|
-
|
496
|
-
|
497
|
-
|
498
|
-
|
499
|
-
|
500
|
-
|
501
|
-
|
502
|
-
|
503
|
-
|
504
|
-
|
505
|
-
|
506
|
-
|
480
|
+
author: ({
|
481
|
+
// The author's name
|
482
|
+
name: string,
|
483
|
+
// The author's nickname
|
484
|
+
nickname: string,
|
485
|
+
// The author's avatar url
|
486
|
+
avatarUrl: string,
|
487
|
+
// The author's profile path
|
488
|
+
profilePath: string,
|
489
|
+
// Whether the author's account has been deleted or not
|
490
|
+
deleted: boolean,
|
491
|
+
// The author's badge icon
|
492
|
+
badge: string,
|
493
|
+
} | {
|
494
|
+
// The author's name
|
495
|
+
name: string,
|
496
|
+
// The author's nickname
|
497
|
+
nickname: string,
|
498
|
+
// The author's avatar url
|
499
|
+
avatarUrl: string,
|
500
|
+
// The author's profile path
|
501
|
+
profilePath: string,
|
502
|
+
// Whether the author's account has been deleted or not
|
503
|
+
deleted: boolean,
|
504
|
+
// The author's badge icon
|
505
|
+
badge: string,
|
506
|
+
}
|
507
507
|
),
|
508
508
|
// Check if the commentable has comments
|
509
509
|
hasComments: boolean,
|
@@ -523,9 +523,9 @@ export interface DownVoteMutation {
|
|
523
523
|
downVoted: boolean,
|
524
524
|
// The number of comment's downVotes
|
525
525
|
downVotes: number,
|
526
|
-
}
|
527
|
-
}
|
528
|
-
}
|
526
|
+
}>,
|
527
|
+
}>,
|
528
|
+
}>,
|
529
529
|
},
|
530
530
|
} | null,
|
531
531
|
};
|
@@ -536,8 +536,8 @@ export interface UpVoteMutationVariables {
|
|
536
536
|
|
537
537
|
export interface UpVoteMutation {
|
538
538
|
// A comment
|
539
|
-
comment:
|
540
|
-
upVote:
|
539
|
+
comment: {
|
540
|
+
upVote: {
|
541
541
|
// The Comment's unique ID
|
542
542
|
id: string,
|
543
543
|
// The Comment's signed global id
|
@@ -553,33 +553,33 @@ export interface UpVoteMutation {
|
|
553
553
|
// The creation date of the comment in relative format
|
554
554
|
formattedCreatedAt: string,
|
555
555
|
// The resource author
|
556
|
-
author: (
|
557
|
-
|
558
|
-
|
559
|
-
|
560
|
-
|
561
|
-
|
562
|
-
|
563
|
-
|
564
|
-
|
565
|
-
|
566
|
-
|
567
|
-
|
568
|
-
|
569
|
-
|
570
|
-
|
571
|
-
|
572
|
-
|
573
|
-
|
574
|
-
|
575
|
-
|
576
|
-
|
577
|
-
|
578
|
-
|
579
|
-
|
580
|
-
|
581
|
-
|
582
|
-
|
556
|
+
author: ({
|
557
|
+
// The author's name
|
558
|
+
name: string,
|
559
|
+
// The author's nickname
|
560
|
+
nickname: string,
|
561
|
+
// The author's avatar url
|
562
|
+
avatarUrl: string,
|
563
|
+
// The author's profile path
|
564
|
+
profilePath: string,
|
565
|
+
// Whether the author's account has been deleted or not
|
566
|
+
deleted: boolean,
|
567
|
+
// The author's badge icon
|
568
|
+
badge: string,
|
569
|
+
} | {
|
570
|
+
// The author's name
|
571
|
+
name: string,
|
572
|
+
// The author's nickname
|
573
|
+
nickname: string,
|
574
|
+
// The author's avatar url
|
575
|
+
avatarUrl: string,
|
576
|
+
// The author's profile path
|
577
|
+
profilePath: string,
|
578
|
+
// Whether the author's account has been deleted or not
|
579
|
+
deleted: boolean,
|
580
|
+
// The author's badge icon
|
581
|
+
badge: string,
|
582
|
+
}
|
583
583
|
),
|
584
584
|
// Check if the commentable has comments
|
585
585
|
hasComments: boolean,
|
@@ -599,7 +599,7 @@ export interface UpVoteMutation {
|
|
599
599
|
downVoted: boolean,
|
600
600
|
// The number of comment's downVotes
|
601
601
|
downVotes: number,
|
602
|
-
comments:
|
602
|
+
comments: Array<{
|
603
603
|
// The Comment's unique ID
|
604
604
|
id: string,
|
605
605
|
// The Comment's signed global id
|
@@ -615,33 +615,33 @@ export interface UpVoteMutation {
|
|
615
615
|
// The creation date of the comment in relative format
|
616
616
|
formattedCreatedAt: string,
|
617
617
|
// The resource author
|
618
|
-
author: (
|
619
|
-
|
620
|
-
|
621
|
-
|
622
|
-
|
623
|
-
|
624
|
-
|
625
|
-
|
626
|
-
|
627
|
-
|
628
|
-
|
629
|
-
|
630
|
-
|
631
|
-
|
632
|
-
|
633
|
-
|
634
|
-
|
635
|
-
|
636
|
-
|
637
|
-
|
638
|
-
|
639
|
-
|
640
|
-
|
641
|
-
|
642
|
-
|
643
|
-
|
644
|
-
|
618
|
+
author: ({
|
619
|
+
// The author's name
|
620
|
+
name: string,
|
621
|
+
// The author's nickname
|
622
|
+
nickname: string,
|
623
|
+
// The author's avatar url
|
624
|
+
avatarUrl: string,
|
625
|
+
// The author's profile path
|
626
|
+
profilePath: string,
|
627
|
+
// Whether the author's account has been deleted or not
|
628
|
+
deleted: boolean,
|
629
|
+
// The author's badge icon
|
630
|
+
badge: string,
|
631
|
+
} | {
|
632
|
+
// The author's name
|
633
|
+
name: string,
|
634
|
+
// The author's nickname
|
635
|
+
nickname: string,
|
636
|
+
// The author's avatar url
|
637
|
+
avatarUrl: string,
|
638
|
+
// The author's profile path
|
639
|
+
profilePath: string,
|
640
|
+
// Whether the author's account has been deleted or not
|
641
|
+
deleted: boolean,
|
642
|
+
// The author's badge icon
|
643
|
+
badge: string,
|
644
|
+
}
|
645
645
|
),
|
646
646
|
// Check if the commentable has comments
|
647
647
|
hasComments: boolean,
|
@@ -661,7 +661,7 @@ export interface UpVoteMutation {
|
|
661
661
|
downVoted: boolean,
|
662
662
|
// The number of comment's downVotes
|
663
663
|
downVotes: number,
|
664
|
-
comments:
|
664
|
+
comments: Array<{
|
665
665
|
// The Comment's unique ID
|
666
666
|
id: string,
|
667
667
|
// The Comment's signed global id
|
@@ -677,53 +677,53 @@ export interface UpVoteMutation {
|
|
677
677
|
// The creation date of the comment in relative format
|
678
678
|
formattedCreatedAt: string,
|
679
679
|
// The resource author
|
680
|
-
author: (
|
681
|
-
|
682
|
-
|
683
|
-
|
684
|
-
|
685
|
-
|
686
|
-
|
687
|
-
|
688
|
-
|
689
|
-
|
690
|
-
|
691
|
-
|
692
|
-
|
693
|
-
|
694
|
-
|
695
|
-
|
696
|
-
|
697
|
-
|
698
|
-
|
699
|
-
|
700
|
-
|
701
|
-
|
702
|
-
|
703
|
-
|
704
|
-
|
705
|
-
|
706
|
-
|
707
|
-
),
|
708
|
-
// Check if the commentable has comments
|
709
|
-
hasComments: boolean,
|
710
|
-
// Whether the object can have new comments or not
|
711
|
-
acceptsNewComments: boolean,
|
712
|
-
// Check if the current user can comment
|
713
|
-
userAllowedToComment: boolean,
|
714
|
-
// The comment's alignment. Can be 0 (neutral), 1 (in favor) or -1 (against)'
|
715
|
-
alignment: number | null,
|
716
|
-
// Check if the current user has reported the comment
|
717
|
-
alreadyReported: boolean,
|
718
|
-
// The number of comment's upVotes
|
719
|
-
upVotes: number,
|
720
|
-
// Check if the current user has upvoted the comment
|
721
|
-
upVoted: boolean,
|
722
|
-
// Check if the current user has downvoted the comment
|
723
|
-
downVoted: boolean,
|
724
|
-
// The number of comment's downVotes
|
680
|
+
author: ({
|
681
|
+
// The author's name
|
682
|
+
name: string,
|
683
|
+
// The author's nickname
|
684
|
+
nickname: string,
|
685
|
+
// The author's avatar url
|
686
|
+
avatarUrl: string,
|
687
|
+
// The author's profile path
|
688
|
+
profilePath: string,
|
689
|
+
// Whether the author's account has been deleted or not
|
690
|
+
deleted: boolean,
|
691
|
+
// The author's badge icon
|
692
|
+
badge: string,
|
693
|
+
} | {
|
694
|
+
// The author's name
|
695
|
+
name: string,
|
696
|
+
// The author's nickname
|
697
|
+
nickname: string,
|
698
|
+
// The author's avatar url
|
699
|
+
avatarUrl: string,
|
700
|
+
// The author's profile path
|
701
|
+
profilePath: string,
|
702
|
+
// Whether the author's account has been deleted or not
|
703
|
+
deleted: boolean,
|
704
|
+
// The author's badge icon
|
705
|
+
badge: string,
|
706
|
+
}
|
707
|
+
),
|
708
|
+
// Check if the commentable has comments
|
709
|
+
hasComments: boolean,
|
710
|
+
// Whether the object can have new comments or not
|
711
|
+
acceptsNewComments: boolean,
|
712
|
+
// Check if the current user can comment
|
713
|
+
userAllowedToComment: boolean,
|
714
|
+
// The comment's alignment. Can be 0 (neutral), 1 (in favor) or -1 (against)'
|
715
|
+
alignment: number | null,
|
716
|
+
// Check if the current user has reported the comment
|
717
|
+
alreadyReported: boolean,
|
718
|
+
// The number of comment's upVotes
|
719
|
+
upVotes: number,
|
720
|
+
// Check if the current user has upvoted the comment
|
721
|
+
upVoted: boolean,
|
722
|
+
// Check if the current user has downvoted the comment
|
723
|
+
downVoted: boolean,
|
724
|
+
// The number of comment's downVotes
|
725
725
|
downVotes: number,
|
726
|
-
comments:
|
726
|
+
comments: Array<{
|
727
727
|
// The Comment's unique ID
|
728
728
|
id: string,
|
729
729
|
// The Comment's signed global id
|
@@ -739,33 +739,33 @@ export interface UpVoteMutation {
|
|
739
739
|
// The creation date of the comment in relative format
|
740
740
|
formattedCreatedAt: string,
|
741
741
|
// The resource author
|
742
|
-
author: (
|
743
|
-
|
744
|
-
|
745
|
-
|
746
|
-
|
747
|
-
|
748
|
-
|
749
|
-
|
750
|
-
|
751
|
-
|
752
|
-
|
753
|
-
|
754
|
-
|
755
|
-
|
756
|
-
|
757
|
-
|
758
|
-
|
759
|
-
|
760
|
-
|
761
|
-
|
762
|
-
|
763
|
-
|
764
|
-
|
765
|
-
|
766
|
-
|
767
|
-
|
768
|
-
|
742
|
+
author: ({
|
743
|
+
// The author's name
|
744
|
+
name: string,
|
745
|
+
// The author's nickname
|
746
|
+
nickname: string,
|
747
|
+
// The author's avatar url
|
748
|
+
avatarUrl: string,
|
749
|
+
// The author's profile path
|
750
|
+
profilePath: string,
|
751
|
+
// Whether the author's account has been deleted or not
|
752
|
+
deleted: boolean,
|
753
|
+
// The author's badge icon
|
754
|
+
badge: string,
|
755
|
+
} | {
|
756
|
+
// The author's name
|
757
|
+
name: string,
|
758
|
+
// The author's nickname
|
759
|
+
nickname: string,
|
760
|
+
// The author's avatar url
|
761
|
+
avatarUrl: string,
|
762
|
+
// The author's profile path
|
763
|
+
profilePath: string,
|
764
|
+
// Whether the author's account has been deleted or not
|
765
|
+
deleted: boolean,
|
766
|
+
// The author's badge icon
|
767
|
+
badge: string,
|
768
|
+
}
|
769
769
|
),
|
770
770
|
// Check if the commentable has comments
|
771
771
|
hasComments: boolean,
|
@@ -785,9 +785,9 @@ export interface UpVoteMutation {
|
|
785
785
|
downVoted: boolean,
|
786
786
|
// The number of comment's downVotes
|
787
787
|
downVotes: number,
|
788
|
-
}
|
789
|
-
}
|
790
|
-
}
|
788
|
+
}>,
|
789
|
+
}>,
|
790
|
+
}>,
|
791
791
|
},
|
792
792
|
} | null,
|
793
793
|
};
|
@@ -796,13 +796,14 @@ export interface GetCommentsQueryVariables {
|
|
796
796
|
commentableId: string,
|
797
797
|
commentableType: string,
|
798
798
|
orderBy?: string | null,
|
799
|
+
singleCommentId?: string | null,
|
799
800
|
};
|
800
801
|
|
801
802
|
export interface GetCommentsQuery {
|
802
803
|
// Return's information about the logged in user
|
803
|
-
session:
|
804
|
+
session: {
|
804
805
|
// The current user
|
805
|
-
user:
|
806
|
+
user: {
|
806
807
|
// The user's name
|
807
808
|
name: string,
|
808
809
|
// The user's nickname
|
@@ -813,14 +814,14 @@ export interface GetCommentsQuery {
|
|
813
814
|
organizationName: string,
|
814
815
|
} | null,
|
815
816
|
// The current user verified user groups
|
816
|
-
verifiedUserGroups:
|
817
|
+
verifiedUserGroups: Array<{
|
817
818
|
// The user group's id
|
818
819
|
id: string,
|
819
820
|
// The user group's name
|
820
821
|
name: string,
|
821
|
-
}
|
822
|
+
}>,
|
822
823
|
} | null,
|
823
|
-
commentable:
|
824
|
+
commentable: {
|
824
825
|
// Whether the object can have new comments or not
|
825
826
|
acceptsNewComments: boolean,
|
826
827
|
// Check if the current user can comment
|
@@ -831,7 +832,7 @@ export interface GetCommentsQuery {
|
|
831
832
|
commentsHaveVotes: boolean,
|
832
833
|
// The number of comments in all levels this resource holds
|
833
834
|
totalCommentsCount: number,
|
834
|
-
comments:
|
835
|
+
comments: Array<{
|
835
836
|
// The Comment's unique ID
|
836
837
|
id: string,
|
837
838
|
// Check if the commentable has comments
|
@@ -849,33 +850,33 @@ export interface GetCommentsQuery {
|
|
849
850
|
// The creation date of the comment in relative format
|
850
851
|
formattedCreatedAt: string,
|
851
852
|
// The resource author
|
852
|
-
author: (
|
853
|
-
|
854
|
-
|
855
|
-
|
856
|
-
|
857
|
-
|
858
|
-
|
859
|
-
|
860
|
-
|
861
|
-
|
862
|
-
|
863
|
-
|
864
|
-
|
865
|
-
|
866
|
-
|
867
|
-
|
868
|
-
|
869
|
-
|
870
|
-
|
871
|
-
|
872
|
-
|
873
|
-
|
874
|
-
|
875
|
-
|
876
|
-
|
877
|
-
|
878
|
-
|
853
|
+
author: ({
|
854
|
+
// The author's name
|
855
|
+
name: string,
|
856
|
+
// The author's nickname
|
857
|
+
nickname: string,
|
858
|
+
// The author's avatar url
|
859
|
+
avatarUrl: string,
|
860
|
+
// The author's profile path
|
861
|
+
profilePath: string,
|
862
|
+
// Whether the author's account has been deleted or not
|
863
|
+
deleted: boolean,
|
864
|
+
// The author's badge icon
|
865
|
+
badge: string,
|
866
|
+
} | {
|
867
|
+
// The author's name
|
868
|
+
name: string,
|
869
|
+
// The author's nickname
|
870
|
+
nickname: string,
|
871
|
+
// The author's avatar url
|
872
|
+
avatarUrl: string,
|
873
|
+
// The author's profile path
|
874
|
+
profilePath: string,
|
875
|
+
// Whether the author's account has been deleted or not
|
876
|
+
deleted: boolean,
|
877
|
+
// The author's badge icon
|
878
|
+
badge: string,
|
879
|
+
}
|
879
880
|
),
|
880
881
|
// Whether the object can have new comments or not
|
881
882
|
acceptsNewComments: boolean,
|
@@ -893,7 +894,7 @@ export interface GetCommentsQuery {
|
|
893
894
|
downVoted: boolean,
|
894
895
|
// The number of comment's downVotes
|
895
896
|
downVotes: number,
|
896
|
-
comments:
|
897
|
+
comments: Array<{
|
897
898
|
// The Comment's unique ID
|
898
899
|
id: string,
|
899
900
|
// The Comment's signed global id
|
@@ -909,33 +910,33 @@ export interface GetCommentsQuery {
|
|
909
910
|
// The creation date of the comment in relative format
|
910
911
|
formattedCreatedAt: string,
|
911
912
|
// The resource author
|
912
|
-
author: (
|
913
|
-
|
914
|
-
|
915
|
-
|
916
|
-
|
917
|
-
|
918
|
-
|
919
|
-
|
920
|
-
|
921
|
-
|
922
|
-
|
923
|
-
|
924
|
-
|
925
|
-
|
926
|
-
|
927
|
-
|
928
|
-
|
929
|
-
|
930
|
-
|
931
|
-
|
932
|
-
|
933
|
-
|
934
|
-
|
935
|
-
|
936
|
-
|
937
|
-
|
938
|
-
|
913
|
+
author: ({
|
914
|
+
// The author's name
|
915
|
+
name: string,
|
916
|
+
// The author's nickname
|
917
|
+
nickname: string,
|
918
|
+
// The author's avatar url
|
919
|
+
avatarUrl: string,
|
920
|
+
// The author's profile path
|
921
|
+
profilePath: string,
|
922
|
+
// Whether the author's account has been deleted or not
|
923
|
+
deleted: boolean,
|
924
|
+
// The author's badge icon
|
925
|
+
badge: string,
|
926
|
+
} | {
|
927
|
+
// The author's name
|
928
|
+
name: string,
|
929
|
+
// The author's nickname
|
930
|
+
nickname: string,
|
931
|
+
// The author's avatar url
|
932
|
+
avatarUrl: string,
|
933
|
+
// The author's profile path
|
934
|
+
profilePath: string,
|
935
|
+
// Whether the author's account has been deleted or not
|
936
|
+
deleted: boolean,
|
937
|
+
// The author's badge icon
|
938
|
+
badge: string,
|
939
|
+
}
|
939
940
|
),
|
940
941
|
// Check if the commentable has comments
|
941
942
|
hasComments: boolean,
|
@@ -955,7 +956,7 @@ export interface GetCommentsQuery {
|
|
955
956
|
downVoted: boolean,
|
956
957
|
// The number of comment's downVotes
|
957
958
|
downVotes: number,
|
958
|
-
comments:
|
959
|
+
comments: Array<{
|
959
960
|
// The Comment's unique ID
|
960
961
|
id: string,
|
961
962
|
// The Comment's signed global id
|
@@ -971,33 +972,33 @@ export interface GetCommentsQuery {
|
|
971
972
|
// The creation date of the comment in relative format
|
972
973
|
formattedCreatedAt: string,
|
973
974
|
// The resource author
|
974
|
-
author: (
|
975
|
-
|
976
|
-
|
977
|
-
|
978
|
-
|
979
|
-
|
980
|
-
|
981
|
-
|
982
|
-
|
983
|
-
|
984
|
-
|
985
|
-
|
986
|
-
|
987
|
-
|
988
|
-
|
989
|
-
|
990
|
-
|
991
|
-
|
992
|
-
|
993
|
-
|
994
|
-
|
995
|
-
|
996
|
-
|
997
|
-
|
998
|
-
|
999
|
-
|
1000
|
-
|
975
|
+
author: ({
|
976
|
+
// The author's name
|
977
|
+
name: string,
|
978
|
+
// The author's nickname
|
979
|
+
nickname: string,
|
980
|
+
// The author's avatar url
|
981
|
+
avatarUrl: string,
|
982
|
+
// The author's profile path
|
983
|
+
profilePath: string,
|
984
|
+
// Whether the author's account has been deleted or not
|
985
|
+
deleted: boolean,
|
986
|
+
// The author's badge icon
|
987
|
+
badge: string,
|
988
|
+
} | {
|
989
|
+
// The author's name
|
990
|
+
name: string,
|
991
|
+
// The author's nickname
|
992
|
+
nickname: string,
|
993
|
+
// The author's avatar url
|
994
|
+
avatarUrl: string,
|
995
|
+
// The author's profile path
|
996
|
+
profilePath: string,
|
997
|
+
// Whether the author's account has been deleted or not
|
998
|
+
deleted: boolean,
|
999
|
+
// The author's badge icon
|
1000
|
+
badge: string,
|
1001
|
+
}
|
1001
1002
|
),
|
1002
1003
|
// Check if the commentable has comments
|
1003
1004
|
hasComments: boolean,
|
@@ -1017,7 +1018,7 @@ export interface GetCommentsQuery {
|
|
1017
1018
|
downVoted: boolean,
|
1018
1019
|
// The number of comment's downVotes
|
1019
1020
|
downVotes: number,
|
1020
|
-
comments:
|
1021
|
+
comments: Array<{
|
1021
1022
|
// The Comment's unique ID
|
1022
1023
|
id: string,
|
1023
1024
|
// The Comment's signed global id
|
@@ -1033,33 +1034,33 @@ export interface GetCommentsQuery {
|
|
1033
1034
|
// The creation date of the comment in relative format
|
1034
1035
|
formattedCreatedAt: string,
|
1035
1036
|
// The resource author
|
1036
|
-
author: (
|
1037
|
-
|
1038
|
-
|
1039
|
-
|
1040
|
-
|
1041
|
-
|
1042
|
-
|
1043
|
-
|
1044
|
-
|
1045
|
-
|
1046
|
-
|
1047
|
-
|
1048
|
-
|
1049
|
-
|
1050
|
-
|
1051
|
-
|
1052
|
-
|
1053
|
-
|
1054
|
-
|
1055
|
-
|
1056
|
-
|
1057
|
-
|
1058
|
-
|
1059
|
-
|
1060
|
-
|
1061
|
-
|
1062
|
-
|
1037
|
+
author: ({
|
1038
|
+
// The author's name
|
1039
|
+
name: string,
|
1040
|
+
// The author's nickname
|
1041
|
+
nickname: string,
|
1042
|
+
// The author's avatar url
|
1043
|
+
avatarUrl: string,
|
1044
|
+
// The author's profile path
|
1045
|
+
profilePath: string,
|
1046
|
+
// Whether the author's account has been deleted or not
|
1047
|
+
deleted: boolean,
|
1048
|
+
// The author's badge icon
|
1049
|
+
badge: string,
|
1050
|
+
} | {
|
1051
|
+
// The author's name
|
1052
|
+
name: string,
|
1053
|
+
// The author's nickname
|
1054
|
+
nickname: string,
|
1055
|
+
// The author's avatar url
|
1056
|
+
avatarUrl: string,
|
1057
|
+
// The author's profile path
|
1058
|
+
profilePath: string,
|
1059
|
+
// Whether the author's account has been deleted or not
|
1060
|
+
deleted: boolean,
|
1061
|
+
// The author's badge icon
|
1062
|
+
badge: string,
|
1063
|
+
}
|
1063
1064
|
),
|
1064
1065
|
// Check if the commentable has comments
|
1065
1066
|
hasComments: boolean,
|
@@ -1079,10 +1080,10 @@ export interface GetCommentsQuery {
|
|
1079
1080
|
downVoted: boolean,
|
1080
1081
|
// The number of comment's downVotes
|
1081
1082
|
downVotes: number,
|
1082
|
-
}
|
1083
|
-
}
|
1084
|
-
}
|
1085
|
-
}
|
1083
|
+
}>,
|
1084
|
+
}>,
|
1085
|
+
}>,
|
1086
|
+
}>,
|
1086
1087
|
// The commentable's ID
|
1087
1088
|
id: string,
|
1088
1089
|
// The commentable's class name. i.e. `Decidim::ParticipatoryProcess`
|
@@ -1099,12 +1100,12 @@ export interface AddCommentFormCommentableFragment {
|
|
1099
1100
|
|
1100
1101
|
export interface AddCommentFormSessionFragment {
|
1101
1102
|
// The current user verified user groups
|
1102
|
-
verifiedUserGroups:
|
1103
|
+
verifiedUserGroups: Array<{
|
1103
1104
|
// The user group's id
|
1104
1105
|
id: string,
|
1105
1106
|
// The user group's name
|
1106
1107
|
name: string,
|
1107
|
-
}
|
1108
|
+
}>,
|
1108
1109
|
};
|
1109
1110
|
|
1110
1111
|
export interface CommentFragment {
|
@@ -1123,33 +1124,33 @@ export interface CommentFragment {
|
|
1123
1124
|
// The creation date of the comment in relative format
|
1124
1125
|
formattedCreatedAt: string,
|
1125
1126
|
// The resource author
|
1126
|
-
author: (
|
1127
|
-
|
1128
|
-
|
1129
|
-
|
1130
|
-
|
1131
|
-
|
1132
|
-
|
1133
|
-
|
1134
|
-
|
1135
|
-
|
1136
|
-
|
1137
|
-
|
1138
|
-
|
1139
|
-
|
1140
|
-
|
1141
|
-
|
1142
|
-
|
1143
|
-
|
1144
|
-
|
1145
|
-
|
1146
|
-
|
1147
|
-
|
1148
|
-
|
1149
|
-
|
1150
|
-
|
1151
|
-
|
1152
|
-
|
1127
|
+
author: ({
|
1128
|
+
// The author's name
|
1129
|
+
name: string,
|
1130
|
+
// The author's nickname
|
1131
|
+
nickname: string,
|
1132
|
+
// The author's avatar url
|
1133
|
+
avatarUrl: string,
|
1134
|
+
// The author's profile path
|
1135
|
+
profilePath: string,
|
1136
|
+
// Whether the author's account has been deleted or not
|
1137
|
+
deleted: boolean,
|
1138
|
+
// The author's badge icon
|
1139
|
+
badge: string,
|
1140
|
+
} | {
|
1141
|
+
// The author's name
|
1142
|
+
name: string,
|
1143
|
+
// The author's nickname
|
1144
|
+
nickname: string,
|
1145
|
+
// The author's avatar url
|
1146
|
+
avatarUrl: string,
|
1147
|
+
// The author's profile path
|
1148
|
+
profilePath: string,
|
1149
|
+
// Whether the author's account has been deleted or not
|
1150
|
+
deleted: boolean,
|
1151
|
+
// The author's badge icon
|
1152
|
+
badge: string,
|
1153
|
+
}
|
1153
1154
|
),
|
1154
1155
|
// Check if the commentable has comments
|
1155
1156
|
hasComments: boolean,
|
@@ -1169,7 +1170,7 @@ export interface CommentFragment {
|
|
1169
1170
|
downVoted: boolean,
|
1170
1171
|
// The number of comment's downVotes
|
1171
1172
|
downVotes: number,
|
1172
|
-
comments:
|
1173
|
+
comments: Array<{
|
1173
1174
|
// The Comment's unique ID
|
1174
1175
|
id: string,
|
1175
1176
|
// The Comment's signed global id
|
@@ -1185,33 +1186,33 @@ export interface CommentFragment {
|
|
1185
1186
|
// The creation date of the comment in relative format
|
1186
1187
|
formattedCreatedAt: string,
|
1187
1188
|
// The resource author
|
1188
|
-
author: (
|
1189
|
-
|
1190
|
-
|
1191
|
-
|
1192
|
-
|
1193
|
-
|
1194
|
-
|
1195
|
-
|
1196
|
-
|
1197
|
-
|
1198
|
-
|
1199
|
-
|
1200
|
-
|
1201
|
-
|
1202
|
-
|
1203
|
-
|
1204
|
-
|
1205
|
-
|
1206
|
-
|
1207
|
-
|
1208
|
-
|
1209
|
-
|
1210
|
-
|
1211
|
-
|
1212
|
-
|
1213
|
-
|
1214
|
-
|
1189
|
+
author: ({
|
1190
|
+
// The author's name
|
1191
|
+
name: string,
|
1192
|
+
// The author's nickname
|
1193
|
+
nickname: string,
|
1194
|
+
// The author's avatar url
|
1195
|
+
avatarUrl: string,
|
1196
|
+
// The author's profile path
|
1197
|
+
profilePath: string,
|
1198
|
+
// Whether the author's account has been deleted or not
|
1199
|
+
deleted: boolean,
|
1200
|
+
// The author's badge icon
|
1201
|
+
badge: string,
|
1202
|
+
} | {
|
1203
|
+
// The author's name
|
1204
|
+
name: string,
|
1205
|
+
// The author's nickname
|
1206
|
+
nickname: string,
|
1207
|
+
// The author's avatar url
|
1208
|
+
avatarUrl: string,
|
1209
|
+
// The author's profile path
|
1210
|
+
profilePath: string,
|
1211
|
+
// Whether the author's account has been deleted or not
|
1212
|
+
deleted: boolean,
|
1213
|
+
// The author's badge icon
|
1214
|
+
badge: string,
|
1215
|
+
}
|
1215
1216
|
),
|
1216
1217
|
// Check if the commentable has comments
|
1217
1218
|
hasComments: boolean,
|
@@ -1231,7 +1232,7 @@ export interface CommentFragment {
|
|
1231
1232
|
downVoted: boolean,
|
1232
1233
|
// The number of comment's downVotes
|
1233
1234
|
downVotes: number,
|
1234
|
-
comments:
|
1235
|
+
comments: Array<{
|
1235
1236
|
// The Comment's unique ID
|
1236
1237
|
id: string,
|
1237
1238
|
// The Comment's signed global id
|
@@ -1247,33 +1248,33 @@ export interface CommentFragment {
|
|
1247
1248
|
// The creation date of the comment in relative format
|
1248
1249
|
formattedCreatedAt: string,
|
1249
1250
|
// The resource author
|
1250
|
-
author: (
|
1251
|
-
|
1252
|
-
|
1253
|
-
|
1254
|
-
|
1255
|
-
|
1256
|
-
|
1257
|
-
|
1258
|
-
|
1259
|
-
|
1260
|
-
|
1261
|
-
|
1262
|
-
|
1263
|
-
|
1264
|
-
|
1265
|
-
|
1266
|
-
|
1267
|
-
|
1268
|
-
|
1269
|
-
|
1270
|
-
|
1271
|
-
|
1272
|
-
|
1273
|
-
|
1274
|
-
|
1275
|
-
|
1276
|
-
|
1251
|
+
author: ({
|
1252
|
+
// The author's name
|
1253
|
+
name: string,
|
1254
|
+
// The author's nickname
|
1255
|
+
nickname: string,
|
1256
|
+
// The author's avatar url
|
1257
|
+
avatarUrl: string,
|
1258
|
+
// The author's profile path
|
1259
|
+
profilePath: string,
|
1260
|
+
// Whether the author's account has been deleted or not
|
1261
|
+
deleted: boolean,
|
1262
|
+
// The author's badge icon
|
1263
|
+
badge: string,
|
1264
|
+
} | {
|
1265
|
+
// The author's name
|
1266
|
+
name: string,
|
1267
|
+
// The author's nickname
|
1268
|
+
nickname: string,
|
1269
|
+
// The author's avatar url
|
1270
|
+
avatarUrl: string,
|
1271
|
+
// The author's profile path
|
1272
|
+
profilePath: string,
|
1273
|
+
// Whether the author's account has been deleted or not
|
1274
|
+
deleted: boolean,
|
1275
|
+
// The author's badge icon
|
1276
|
+
badge: string,
|
1277
|
+
}
|
1277
1278
|
),
|
1278
1279
|
// Check if the commentable has comments
|
1279
1280
|
hasComments: boolean,
|
@@ -1293,7 +1294,7 @@ export interface CommentFragment {
|
|
1293
1294
|
downVoted: boolean,
|
1294
1295
|
// The number of comment's downVotes
|
1295
1296
|
downVotes: number,
|
1296
|
-
comments:
|
1297
|
+
comments: Array<{
|
1297
1298
|
// The Comment's unique ID
|
1298
1299
|
id: string,
|
1299
1300
|
// The Comment's signed global id
|
@@ -1309,33 +1310,33 @@ export interface CommentFragment {
|
|
1309
1310
|
// The creation date of the comment in relative format
|
1310
1311
|
formattedCreatedAt: string,
|
1311
1312
|
// The resource author
|
1312
|
-
author: (
|
1313
|
-
|
1314
|
-
|
1315
|
-
|
1316
|
-
|
1317
|
-
|
1318
|
-
|
1319
|
-
|
1320
|
-
|
1321
|
-
|
1322
|
-
|
1323
|
-
|
1324
|
-
|
1325
|
-
|
1326
|
-
|
1327
|
-
|
1328
|
-
|
1329
|
-
|
1330
|
-
|
1331
|
-
|
1332
|
-
|
1333
|
-
|
1334
|
-
|
1335
|
-
|
1336
|
-
|
1337
|
-
|
1338
|
-
|
1313
|
+
author: ({
|
1314
|
+
// The author's name
|
1315
|
+
name: string,
|
1316
|
+
// The author's nickname
|
1317
|
+
nickname: string,
|
1318
|
+
// The author's avatar url
|
1319
|
+
avatarUrl: string,
|
1320
|
+
// The author's profile path
|
1321
|
+
profilePath: string,
|
1322
|
+
// Whether the author's account has been deleted or not
|
1323
|
+
deleted: boolean,
|
1324
|
+
// The author's badge icon
|
1325
|
+
badge: string,
|
1326
|
+
} | {
|
1327
|
+
// The author's name
|
1328
|
+
name: string,
|
1329
|
+
// The author's nickname
|
1330
|
+
nickname: string,
|
1331
|
+
// The author's avatar url
|
1332
|
+
avatarUrl: string,
|
1333
|
+
// The author's profile path
|
1334
|
+
profilePath: string,
|
1335
|
+
// Whether the author's account has been deleted or not
|
1336
|
+
deleted: boolean,
|
1337
|
+
// The author's badge icon
|
1338
|
+
badge: string,
|
1339
|
+
}
|
1339
1340
|
),
|
1340
1341
|
// Check if the commentable has comments
|
1341
1342
|
hasComments: boolean,
|
@@ -1355,9 +1356,9 @@ export interface CommentFragment {
|
|
1355
1356
|
downVoted: boolean,
|
1356
1357
|
// The number of comment's downVotes
|
1357
1358
|
downVotes: number,
|
1358
|
-
}
|
1359
|
-
}
|
1360
|
-
}
|
1359
|
+
}>,
|
1360
|
+
}>,
|
1361
|
+
}>,
|
1361
1362
|
};
|
1362
1363
|
|
1363
1364
|
export interface CommentDataFragment {
|
@@ -1376,33 +1377,33 @@ export interface CommentDataFragment {
|
|
1376
1377
|
// The creation date of the comment in relative format
|
1377
1378
|
formattedCreatedAt: string,
|
1378
1379
|
// The resource author
|
1379
|
-
author: (
|
1380
|
-
|
1381
|
-
|
1382
|
-
|
1383
|
-
|
1384
|
-
|
1385
|
-
|
1386
|
-
|
1387
|
-
|
1388
|
-
|
1389
|
-
|
1390
|
-
|
1391
|
-
|
1392
|
-
|
1393
|
-
|
1394
|
-
|
1395
|
-
|
1396
|
-
|
1397
|
-
|
1398
|
-
|
1399
|
-
|
1400
|
-
|
1401
|
-
|
1402
|
-
|
1403
|
-
|
1404
|
-
|
1405
|
-
|
1380
|
+
author: ({
|
1381
|
+
// The author's name
|
1382
|
+
name: string,
|
1383
|
+
// The author's nickname
|
1384
|
+
nickname: string,
|
1385
|
+
// The author's avatar url
|
1386
|
+
avatarUrl: string,
|
1387
|
+
// The author's profile path
|
1388
|
+
profilePath: string,
|
1389
|
+
// Whether the author's account has been deleted or not
|
1390
|
+
deleted: boolean,
|
1391
|
+
// The author's badge icon
|
1392
|
+
badge: string,
|
1393
|
+
} | {
|
1394
|
+
// The author's name
|
1395
|
+
name: string,
|
1396
|
+
// The author's nickname
|
1397
|
+
nickname: string,
|
1398
|
+
// The author's avatar url
|
1399
|
+
avatarUrl: string,
|
1400
|
+
// The author's profile path
|
1401
|
+
profilePath: string,
|
1402
|
+
// Whether the author's account has been deleted or not
|
1403
|
+
deleted: boolean,
|
1404
|
+
// The author's badge icon
|
1405
|
+
badge: string,
|
1406
|
+
}
|
1406
1407
|
),
|
1407
1408
|
// Check if the commentable has comments
|
1408
1409
|
hasComments: boolean,
|
@@ -1442,33 +1443,33 @@ export interface CommentThreadFragment {
|
|
1442
1443
|
// The creation date of the comment in relative format
|
1443
1444
|
formattedCreatedAt: string,
|
1444
1445
|
// The resource author
|
1445
|
-
author: (
|
1446
|
-
|
1447
|
-
|
1448
|
-
|
1449
|
-
|
1450
|
-
|
1451
|
-
|
1452
|
-
|
1453
|
-
|
1454
|
-
|
1455
|
-
|
1456
|
-
|
1457
|
-
|
1458
|
-
|
1459
|
-
|
1460
|
-
|
1461
|
-
|
1462
|
-
|
1463
|
-
|
1464
|
-
|
1465
|
-
|
1466
|
-
|
1467
|
-
|
1468
|
-
|
1469
|
-
|
1470
|
-
|
1471
|
-
|
1446
|
+
author: ({
|
1447
|
+
// The author's name
|
1448
|
+
name: string,
|
1449
|
+
// The author's nickname
|
1450
|
+
nickname: string,
|
1451
|
+
// The author's avatar url
|
1452
|
+
avatarUrl: string,
|
1453
|
+
// The author's profile path
|
1454
|
+
profilePath: string,
|
1455
|
+
// Whether the author's account has been deleted or not
|
1456
|
+
deleted: boolean,
|
1457
|
+
// The author's badge icon
|
1458
|
+
badge: string,
|
1459
|
+
} | {
|
1460
|
+
// The author's name
|
1461
|
+
name: string,
|
1462
|
+
// The author's nickname
|
1463
|
+
nickname: string,
|
1464
|
+
// The author's avatar url
|
1465
|
+
avatarUrl: string,
|
1466
|
+
// The author's profile path
|
1467
|
+
profilePath: string,
|
1468
|
+
// Whether the author's account has been deleted or not
|
1469
|
+
deleted: boolean,
|
1470
|
+
// The author's badge icon
|
1471
|
+
badge: string,
|
1472
|
+
}
|
1472
1473
|
),
|
1473
1474
|
// Whether the object can have new comments or not
|
1474
1475
|
acceptsNewComments: boolean,
|
@@ -1486,7 +1487,7 @@ export interface CommentThreadFragment {
|
|
1486
1487
|
downVoted: boolean,
|
1487
1488
|
// The number of comment's downVotes
|
1488
1489
|
downVotes: number,
|
1489
|
-
comments:
|
1490
|
+
comments: Array<{
|
1490
1491
|
// The Comment's unique ID
|
1491
1492
|
id: string,
|
1492
1493
|
// The Comment's signed global id
|
@@ -1502,33 +1503,33 @@ export interface CommentThreadFragment {
|
|
1502
1503
|
// The creation date of the comment in relative format
|
1503
1504
|
formattedCreatedAt: string,
|
1504
1505
|
// The resource author
|
1505
|
-
author: (
|
1506
|
-
|
1507
|
-
|
1508
|
-
|
1509
|
-
|
1510
|
-
|
1511
|
-
|
1512
|
-
|
1513
|
-
|
1514
|
-
|
1515
|
-
|
1516
|
-
|
1517
|
-
|
1518
|
-
|
1519
|
-
|
1520
|
-
|
1521
|
-
|
1522
|
-
|
1523
|
-
|
1524
|
-
|
1525
|
-
|
1526
|
-
|
1527
|
-
|
1528
|
-
|
1529
|
-
|
1530
|
-
|
1531
|
-
|
1506
|
+
author: ({
|
1507
|
+
// The author's name
|
1508
|
+
name: string,
|
1509
|
+
// The author's nickname
|
1510
|
+
nickname: string,
|
1511
|
+
// The author's avatar url
|
1512
|
+
avatarUrl: string,
|
1513
|
+
// The author's profile path
|
1514
|
+
profilePath: string,
|
1515
|
+
// Whether the author's account has been deleted or not
|
1516
|
+
deleted: boolean,
|
1517
|
+
// The author's badge icon
|
1518
|
+
badge: string,
|
1519
|
+
} | {
|
1520
|
+
// The author's name
|
1521
|
+
name: string,
|
1522
|
+
// The author's nickname
|
1523
|
+
nickname: string,
|
1524
|
+
// The author's avatar url
|
1525
|
+
avatarUrl: string,
|
1526
|
+
// The author's profile path
|
1527
|
+
profilePath: string,
|
1528
|
+
// Whether the author's account has been deleted or not
|
1529
|
+
deleted: boolean,
|
1530
|
+
// The author's badge icon
|
1531
|
+
badge: string,
|
1532
|
+
}
|
1532
1533
|
),
|
1533
1534
|
// Check if the commentable has comments
|
1534
1535
|
hasComments: boolean,
|
@@ -1548,7 +1549,7 @@ export interface CommentThreadFragment {
|
|
1548
1549
|
downVoted: boolean,
|
1549
1550
|
// The number of comment's downVotes
|
1550
1551
|
downVotes: number,
|
1551
|
-
comments:
|
1552
|
+
comments: Array<{
|
1552
1553
|
// The Comment's unique ID
|
1553
1554
|
id: string,
|
1554
1555
|
// The Comment's signed global id
|
@@ -1564,33 +1565,33 @@ export interface CommentThreadFragment {
|
|
1564
1565
|
// The creation date of the comment in relative format
|
1565
1566
|
formattedCreatedAt: string,
|
1566
1567
|
// The resource author
|
1567
|
-
author: (
|
1568
|
-
|
1569
|
-
|
1570
|
-
|
1571
|
-
|
1572
|
-
|
1573
|
-
|
1574
|
-
|
1575
|
-
|
1576
|
-
|
1577
|
-
|
1578
|
-
|
1579
|
-
|
1580
|
-
|
1581
|
-
|
1582
|
-
|
1583
|
-
|
1584
|
-
|
1585
|
-
|
1586
|
-
|
1587
|
-
|
1588
|
-
|
1589
|
-
|
1590
|
-
|
1591
|
-
|
1592
|
-
|
1593
|
-
|
1568
|
+
author: ({
|
1569
|
+
// The author's name
|
1570
|
+
name: string,
|
1571
|
+
// The author's nickname
|
1572
|
+
nickname: string,
|
1573
|
+
// The author's avatar url
|
1574
|
+
avatarUrl: string,
|
1575
|
+
// The author's profile path
|
1576
|
+
profilePath: string,
|
1577
|
+
// Whether the author's account has been deleted or not
|
1578
|
+
deleted: boolean,
|
1579
|
+
// The author's badge icon
|
1580
|
+
badge: string,
|
1581
|
+
} | {
|
1582
|
+
// The author's name
|
1583
|
+
name: string,
|
1584
|
+
// The author's nickname
|
1585
|
+
nickname: string,
|
1586
|
+
// The author's avatar url
|
1587
|
+
avatarUrl: string,
|
1588
|
+
// The author's profile path
|
1589
|
+
profilePath: string,
|
1590
|
+
// Whether the author's account has been deleted or not
|
1591
|
+
deleted: boolean,
|
1592
|
+
// The author's badge icon
|
1593
|
+
badge: string,
|
1594
|
+
}
|
1594
1595
|
),
|
1595
1596
|
// Check if the commentable has comments
|
1596
1597
|
hasComments: boolean,
|
@@ -1610,7 +1611,7 @@ export interface CommentThreadFragment {
|
|
1610
1611
|
downVoted: boolean,
|
1611
1612
|
// The number of comment's downVotes
|
1612
1613
|
downVotes: number,
|
1613
|
-
comments:
|
1614
|
+
comments: Array<{
|
1614
1615
|
// The Comment's unique ID
|
1615
1616
|
id: string,
|
1616
1617
|
// The Comment's signed global id
|
@@ -1626,33 +1627,33 @@ export interface CommentThreadFragment {
|
|
1626
1627
|
// The creation date of the comment in relative format
|
1627
1628
|
formattedCreatedAt: string,
|
1628
1629
|
// The resource author
|
1629
|
-
author: (
|
1630
|
-
|
1631
|
-
|
1632
|
-
|
1633
|
-
|
1634
|
-
|
1635
|
-
|
1636
|
-
|
1637
|
-
|
1638
|
-
|
1639
|
-
|
1640
|
-
|
1641
|
-
|
1642
|
-
|
1643
|
-
|
1644
|
-
|
1645
|
-
|
1646
|
-
|
1647
|
-
|
1648
|
-
|
1649
|
-
|
1650
|
-
|
1651
|
-
|
1652
|
-
|
1653
|
-
|
1654
|
-
|
1655
|
-
|
1630
|
+
author: ({
|
1631
|
+
// The author's name
|
1632
|
+
name: string,
|
1633
|
+
// The author's nickname
|
1634
|
+
nickname: string,
|
1635
|
+
// The author's avatar url
|
1636
|
+
avatarUrl: string,
|
1637
|
+
// The author's profile path
|
1638
|
+
profilePath: string,
|
1639
|
+
// Whether the author's account has been deleted or not
|
1640
|
+
deleted: boolean,
|
1641
|
+
// The author's badge icon
|
1642
|
+
badge: string,
|
1643
|
+
} | {
|
1644
|
+
// The author's name
|
1645
|
+
name: string,
|
1646
|
+
// The author's nickname
|
1647
|
+
nickname: string,
|
1648
|
+
// The author's avatar url
|
1649
|
+
avatarUrl: string,
|
1650
|
+
// The author's profile path
|
1651
|
+
profilePath: string,
|
1652
|
+
// Whether the author's account has been deleted or not
|
1653
|
+
deleted: boolean,
|
1654
|
+
// The author's badge icon
|
1655
|
+
badge: string,
|
1656
|
+
}
|
1656
1657
|
),
|
1657
1658
|
// Check if the commentable has comments
|
1658
1659
|
hasComments: boolean,
|
@@ -1672,9 +1673,9 @@ export interface CommentThreadFragment {
|
|
1672
1673
|
downVoted: boolean,
|
1673
1674
|
// The number of comment's downVotes
|
1674
1675
|
downVotes: number,
|
1675
|
-
}
|
1676
|
-
}
|
1677
|
-
}
|
1676
|
+
}>,
|
1677
|
+
}>,
|
1678
|
+
}>,
|
1678
1679
|
};
|
1679
1680
|
|
1680
1681
|
export interface DownVoteButtonFragment {
|