@apolitical/component-library 6.1.2-ac.0 → 6.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/discussion/components/form/form.type.d.ts +2 -21
  2. package/discussion/components/form/index.d.ts +1 -1
  3. package/discussion/feeds/replies-feed/cache/hooks/feed/index.d.ts +1 -0
  4. package/discussion/feeds/replies-feed/cache/hooks/feed/parse-replies/index.d.ts +1 -0
  5. package/discussion/feeds/replies-feed/cache/hooks/feed/parse-replies/mocks/index.d.ts +2 -0
  6. package/discussion/feeds/replies-feed/cache/hooks/feed/parse-replies/mocks/replies.mock.d.ts +2 -0
  7. package/discussion/feeds/replies-feed/cache/hooks/feed/parse-replies/mocks/user.mock.d.ts +4 -0
  8. package/discussion/feeds/replies-feed/cache/hooks/feed/parse-replies/parse-replies.d.ts +28 -0
  9. package/discussion/feeds/replies-feed/components/add-reply-form/add-reply-form.d.ts +16 -0
  10. package/discussion/feeds/replies-feed/components/add-reply-form/index.d.ts +1 -0
  11. package/discussion/feeds/replies-feed/components/index.d.ts +3 -0
  12. package/discussion/feeds/replies-feed/components/load-more-replies-button/index.d.ts +1 -0
  13. package/discussion/feeds/replies-feed/components/load-more-replies-button/load-more-replies-button.d.ts +13 -0
  14. package/discussion/feeds/replies-feed/{nested-replies-feed → components/nested-replies-feed}/nested-replies-feed.d.ts +3 -3
  15. package/discussion/feeds/replies-feed/components/reply-item/index.d.ts +1 -0
  16. package/discussion/feeds/replies-feed/components/reply-item/reply-item.d.ts +26 -0
  17. package/discussion/feeds/replies-feed/mocks/index.d.ts +1 -0
  18. package/discussion/feeds/replies-feed/mocks/parsed-replies-feed.mock.d.ts +13 -0
  19. package/discussion/feeds/replies-feed/replies-feed.d.ts +4 -2
  20. package/discussion/sections/activity-section/activity-section.helpers.d.ts +2 -0
  21. package/discussion/sections/activity-section/activity-section.mock.d.ts +103 -0
  22. package/discussion/sections/activity-section/mocks/activity-functions.mock.d.ts +46 -0
  23. package/discussion/sections/activity-section/mocks/activity-section.mock.d.ts +45 -39
  24. package/discussion/sections/activity-section/mocks/index.d.ts +1 -0
  25. package/discussion/shared/interfaces/discussion.interface.d.ts +19 -0
  26. package/helpers/intl.d.ts +1 -1
  27. package/index.js +36 -36
  28. package/index.mjs +7787 -7680
  29. package/navigation/action-bar/action-bar.d.ts +0 -2
  30. package/package.json +1 -1
  31. /package/discussion/feeds/replies-feed/{nested-replies-feed → components/nested-replies-feed}/index.d.ts +0 -0
  32. /package/discussion/feeds/replies-feed/{nested-replies-feed → components/nested-replies-feed}/mocks/index.d.ts +0 -0
  33. /package/discussion/feeds/replies-feed/{nested-replies-feed → components/nested-replies-feed}/mocks/nested-replies-feed.mock.d.ts +0 -0
@@ -1,6 +1,6 @@
1
1
  import type { IEnrichedUrlData } from '../../../navigation';
2
- import { DiscussionCreateContentFunction, IDiscussionContent, IListMemberData, IMentions, IDiscussionFormFns } from './../../discussion';
3
- import { ICategory } from '../../shared';
2
+ import { IDiscussionContent, IMentions } from './../../discussion';
3
+ import { ICategory, IDiscussionFormFunctions } from '../../shared';
4
4
  export interface IDiscussionFormMeta {
5
5
  /** Whether the form data is still loading */
6
6
  isLoading?: boolean;
@@ -36,24 +36,6 @@ export interface IDiscussionFormMeta {
36
36
  /** Whether the success message should show on a successful submit */
37
37
  showSuccessMessage?: boolean;
38
38
  }
39
- interface IDiscussionFormFunctions extends IDiscussionFormFns {
40
- onChange?: (args: {
41
- [key: string]: string | boolean;
42
- }) => void;
43
- create: DiscussionCreateContentFunction;
44
- handleSaveEdit?: (({ title, body }: {
45
- title: string;
46
- body: string;
47
- }) => Promise<void>) | (() => void);
48
- handleCancel?: () => void;
49
- callback?: (args: void) => void;
50
- onMention?: (value?: IListMemberData) => void;
51
- props?: {
52
- create: {
53
- projectNames: ['questions-answers'];
54
- };
55
- };
56
- }
57
39
  export interface IDiscussionForm {
58
40
  /** A unique ID for the form */
59
41
  id?: string;
@@ -107,4 +89,3 @@ export interface IDiscussionFormState {
107
89
  link?: false | IEnrichedUrlData;
108
90
  };
109
91
  }
110
- export {};
@@ -1,2 +1,2 @@
1
- export type { IDiscussionForm, IDiscussionFormMeta } from './form.type';
1
+ export type { IDiscussionForm, IDiscussionFormMeta, } from './form.type';
2
2
  export { default as DiscussionForm } from './form';
@@ -1 +1,2 @@
1
1
  export * from './feed.hook';
2
+ export type { IParsedReplies } from './parse-replies';
@@ -0,0 +1 @@
1
+ export * from './parse-replies';
@@ -0,0 +1,2 @@
1
+ export * from './replies.mock';
2
+ export * from './user.mock';
@@ -0,0 +1,2 @@
1
+ import { IReaction } from '../../../../../../../../discussion/shared';
2
+ export declare const repliesMock: IReaction[];
@@ -0,0 +1,4 @@
1
+ export declare const userMock: {
2
+ id: string;
3
+ isLoading: boolean;
4
+ };
@@ -0,0 +1,28 @@
1
+ import { IUserContext } from '../../../../../../../context';
2
+ import { IMentions, IReaction } from '../../../../../../../discussion/shared';
3
+ import { DefaultGenerics, EnrichedUser } from 'getstream';
4
+ interface ExtractedReplyData {
5
+ mentions?: IMentions;
6
+ [key: string]: unknown;
7
+ }
8
+ export interface IParsedReplies {
9
+ body: string;
10
+ data: ExtractedReplyData;
11
+ likeId: string;
12
+ liked: boolean;
13
+ likes: number;
14
+ peopleWhoLiked: {
15
+ id: string;
16
+ name: string;
17
+ }[] | false;
18
+ replyId: string;
19
+ userLiked: boolean;
20
+ createdAt: string;
21
+ parent: string;
22
+ user: EnrichedUser<DefaultGenerics> | undefined;
23
+ }
24
+ export declare function parseReplies({ replies, user, }: {
25
+ replies: IReaction[];
26
+ user: IUserContext;
27
+ }): IParsedReplies[];
28
+ export {};
@@ -0,0 +1,16 @@
1
+ /// <reference types="react" />
2
+ import { IDiscussionFormFunctions } from '../../../../../discussion/shared';
3
+ interface Props {
4
+ /** Whether the user is a member of the community */
5
+ isMember: boolean;
6
+ /** The ID of the parent, used for slugs */
7
+ parentId: string;
8
+ /** Query functions for the mentions */
9
+ formFunctions: IDiscussionFormFunctions;
10
+ /** Function to join the community */
11
+ join: () => Promise<void>;
12
+ /** Function to leave the community */
13
+ leave: () => Promise<void>;
14
+ }
15
+ export default function AddReplyForm({ parentId, isMember, formFunctions, leave, join, }: Props): JSX.Element;
16
+ export {};
@@ -0,0 +1 @@
1
+ export { default as AddReplyForm } from './add-reply-form';
@@ -0,0 +1,3 @@
1
+ export * from './add-reply-form';
2
+ export * from './load-more-replies-button';
3
+ export * from './reply-item';
@@ -0,0 +1 @@
1
+ export { default as LoadMoreRepliesButton } from './load-more-replies-button';
@@ -0,0 +1,13 @@
1
+ /// <reference types="react" />
2
+ interface Props {
3
+ /** Whether there is a next page */
4
+ hasNextPage: boolean;
5
+ /** Function to fetch the next page */
6
+ fetchNextPage: () => void;
7
+ /** The index to focus on */
8
+ setFocusReplyIndex: (index: number) => void;
9
+ /** The total number of replies */
10
+ totalReplies: number;
11
+ }
12
+ export default function LoadMoreRepliesButton({ hasNextPage, fetchNextPage, setFocusReplyIndex, totalReplies, }: Props): JSX.Element;
13
+ export {};
@@ -1,7 +1,7 @@
1
1
  /// <reference types="react" />
2
- import type { IDiscussionFormFns } from '../../../../discussion/discussion.d';
3
- import { ILikesFeedQueryFns } from '../../../../discussion/feeds/likes-feed';
4
- import { type IQueryFns } from './../cache';
2
+ import type { IDiscussionFormFns } from '../../../../../discussion/discussion.d';
3
+ import { ILikesFeedQueryFns } from '../../../../../discussion/feeds/likes-feed';
4
+ import { type IQueryFns } from '../../cache';
5
5
  interface NestedRepliesFunctions {
6
6
  /** Functions for the replies query */
7
7
  reactions: IQueryFns;
@@ -0,0 +1 @@
1
+ export { default as ReplyItem } from './reply-item';
@@ -0,0 +1,26 @@
1
+ /// <reference types="react" />
2
+ import { ILikesFeedQueryFns } from '../../../../../discussion/feeds/likes-feed';
3
+ import type { IDiscussionFormFns } from '../../../../discussion';
4
+ import type { IQueryFns, IParsedReplies } from '../../cache';
5
+ interface Props {
6
+ /** The ID of the activity the replies are for */
7
+ activityId: string;
8
+ /** The base path, used for slugs */
9
+ basePath: string;
10
+ /** The ID of the parent, used for slugs */
11
+ parentId: string;
12
+ /** Whether the user is a member of the community */
13
+ isMember: boolean;
14
+ /** The reply data */
15
+ reply: IParsedReplies;
16
+ /** Whether to show the replies */
17
+ focus: boolean;
18
+ /** Functions for the replies query */
19
+ formFns: {
20
+ form: IDiscussionFormFns;
21
+ reactions: IQueryFns;
22
+ likes: ILikesFeedQueryFns;
23
+ };
24
+ }
25
+ export default function ReplyItem({ formFns, activityId, basePath, focus, isMember, parentId, reply, }: Props): JSX.Element;
26
+ export {};
@@ -1 +1,2 @@
1
+ export * from './parsed-replies-feed.mock';
1
2
  export * from './replies-feed.mock';
@@ -0,0 +1,13 @@
1
+ export declare const parsedRepliesMock: {
2
+ user: string;
3
+ body: string;
4
+ createdAt: string;
5
+ data: {};
6
+ likeId: string;
7
+ liked: boolean;
8
+ likes: number;
9
+ peopleWhoLiked: never[];
10
+ replyId: string;
11
+ parent: string;
12
+ userLiked: boolean;
13
+ }[];
@@ -1,12 +1,12 @@
1
1
  /// <reference types="react" />
2
2
  import { type IProfileFormProps } from '../../../form';
3
3
  import { ILikesFeedQueryFns } from '../../../discussion/feeds/likes-feed';
4
- import type { IDiscussionFormFns } from './../../discussion';
4
+ import type { IDiscussionFormFns } from '../../discussion';
5
5
  import { type IQueryFns } from './cache';
6
6
  interface RepliesFunctions {
7
7
  /** Functions for the replies query */
8
8
  reactions: IQueryFns;
9
- /** Functions for the likes query */
9
+ /** Functions for likes query */
10
10
  likes: ILikesFeedQueryFns;
11
11
  /** Query functions for the mentions */
12
12
  form: IDiscussionFormFns;
@@ -30,6 +30,8 @@ interface Props {
30
30
  functions: RepliesFunctions;
31
31
  /** Props to pass into the profile form */
32
32
  profile: IProfileFormProps;
33
+ /** Whether to show the replies */
34
+ showReplies: boolean;
33
35
  }
34
36
  declare const RepliesFeed: React.FC<Props>;
35
37
  export default RepliesFeed;
@@ -0,0 +1,2 @@
1
+ import type { ReactionsRecords, DefaultGenerics } from 'getstream';
2
+ export declare function checkIfUserHasVoted(activityType: string, latestReactions: ReactionsRecords<DefaultGenerics> | undefined): boolean;
@@ -0,0 +1,103 @@
1
+ import type { IActivity, IReaction } from '../../shared';
2
+ import { type IMention } from '../../../form';
3
+ export declare const functions: {
4
+ activities: {
5
+ read: () => Promise<IActivity>;
6
+ edit: () => Promise<IActivity>;
7
+ like: () => Promise<IReaction>;
8
+ remove: () => Promise<void>;
9
+ unlike: () => Promise<IReaction>;
10
+ pin: () => Promise<IReaction>;
11
+ unpin: () => Promise<IReaction>;
12
+ };
13
+ reactions: {
14
+ create: () => Promise<IReaction>;
15
+ edit: () => Promise<IReaction>;
16
+ like: () => Promise<IReaction>;
17
+ list: () => Promise<{
18
+ results: IReaction[];
19
+ next: string;
20
+ duration: string;
21
+ }>;
22
+ remove: () => Promise<void>;
23
+ unlike: () => Promise<IReaction>;
24
+ };
25
+ form: {
26
+ listMembers: () => Promise<IMention[]>;
27
+ clickMentionFallback: () => Promise<unknown>;
28
+ };
29
+ likes: {
30
+ list: () => Promise<{
31
+ results: never[];
32
+ next: string;
33
+ duration: string;
34
+ }>;
35
+ };
36
+ join: () => Promise<void>;
37
+ leave: () => Promise<void>;
38
+ };
39
+ export declare const args: {
40
+ basePath: string;
41
+ parentId: string;
42
+ activityId: string;
43
+ isMember: boolean;
44
+ isOwner: boolean;
45
+ profile: {
46
+ hooks: {
47
+ useMaps: () => {
48
+ buildLocation: (input: string) => Promise<{
49
+ id: string;
50
+ en: string;
51
+ code: string;
52
+ }>;
53
+ isValidPlace: (input: string) => boolean;
54
+ predictPlaces: (input: string) => Promise<never[]>;
55
+ };
56
+ };
57
+ functions: {
58
+ uploadImage: () => Promise<void>;
59
+ onSuccess: () => Promise<void>;
60
+ onFailure: () => void;
61
+ };
62
+ };
63
+ functions: {
64
+ activities: {
65
+ read: () => Promise<IActivity>;
66
+ edit: () => Promise<IActivity>;
67
+ like: () => Promise<IReaction>;
68
+ remove: () => Promise<void>;
69
+ unlike: () => Promise<IReaction>;
70
+ pin: () => Promise<IReaction>;
71
+ unpin: () => Promise<IReaction>;
72
+ };
73
+ reactions: {
74
+ create: () => Promise<IReaction>;
75
+ edit: () => Promise<IReaction>;
76
+ like: () => Promise<IReaction>;
77
+ list: () => Promise<{
78
+ results: IReaction[];
79
+ next: string;
80
+ duration: string;
81
+ }>;
82
+ remove: () => Promise<void>;
83
+ unlike: () => Promise<IReaction>;
84
+ };
85
+ form: {
86
+ listMembers: () => Promise<IMention[]>;
87
+ clickMentionFallback: () => Promise<unknown>;
88
+ };
89
+ likes: {
90
+ list: () => Promise<{
91
+ results: never[];
92
+ next: string;
93
+ duration: string;
94
+ }>;
95
+ };
96
+ join: () => Promise<void>;
97
+ leave: () => Promise<void>;
98
+ };
99
+ categories: {
100
+ name: string;
101
+ slug: string;
102
+ }[];
103
+ };
@@ -0,0 +1,46 @@
1
+ export declare const mockFunctions: {
2
+ activities: {
3
+ edit: jest.Mock<any, any, any>;
4
+ like: jest.Mock<any, any, any>;
5
+ read: jest.Mock<any, any, any>;
6
+ remove: jest.Mock<any, any, any>;
7
+ unlike: jest.Mock<any, any, any>;
8
+ pin: jest.Mock<any, any, any>;
9
+ unpin: jest.Mock<any, any, any>;
10
+ };
11
+ reactions: {
12
+ add: jest.Mock<any, any, any>;
13
+ remove: jest.Mock<any, any, any>;
14
+ create: jest.Mock<any, any, any>;
15
+ edit: jest.Mock<any, any, any>;
16
+ like: jest.Mock<any, any, any>;
17
+ list: jest.Mock<any, any, any>;
18
+ unlike: jest.Mock<any, any, any>;
19
+ };
20
+ likes: {
21
+ add: jest.Mock<any, any, any>;
22
+ remove: jest.Mock<any, any, any>;
23
+ list: jest.Mock<any, any, any>;
24
+ };
25
+ form: {
26
+ submit: jest.Mock<any, any, any>;
27
+ validate: jest.Mock<any, any, any>;
28
+ listMembers: jest.Mock<any, any, any>;
29
+ clickMentionFallback: jest.Mock<any, any, any>;
30
+ };
31
+ join: jest.Mock<any, any, any>;
32
+ leave: jest.Mock<any, any, any>;
33
+ };
34
+ export declare const mockProfileHooks: {
35
+ useProfile: jest.Mock<any, any, any>;
36
+ useProfileUpdate: jest.Mock<any, any, any>;
37
+ useMaps: jest.Mock<any, any, any>;
38
+ };
39
+ export declare const mockProfileFunctions: {
40
+ updateProfile: jest.Mock<any, any, any>;
41
+ getProfile: jest.Mock<any, any, any>;
42
+ uploadImage: jest.Mock<any, any, any>;
43
+ onSuccess: jest.Mock<any, any, any>;
44
+ onCancel: jest.Mock<any, any, any>;
45
+ onFailure: jest.Mock<any, any, any>;
46
+ };
@@ -1,46 +1,52 @@
1
1
  export declare const activitySectionMock: {
2
- actor: {
3
- created_at: string;
4
- updated_at: string;
5
- id: string;
6
- data: {
7
- jobTitle: string;
8
- name: string;
9
- organization: string;
10
- location: {
11
- en: string;
12
- };
13
- badges: {
14
- communities: {
15
- 'community-slug': string[];
2
+ POST: {
3
+ actor: {
4
+ created_at: string;
5
+ updated_at: string;
6
+ id: string;
7
+ data: {
8
+ jobTitle: string;
9
+ name: string;
10
+ organization: string;
11
+ location: {
12
+ en: string;
13
+ };
14
+ badges: {
15
+ communities: {
16
+ 'community-slug': string[];
17
+ };
16
18
  };
17
19
  };
18
20
  };
21
+ categories: never[];
22
+ content: string;
23
+ feed_id: string;
24
+ foreign_id: string;
25
+ id: string;
26
+ latest_reactions: {
27
+ like: never[];
28
+ reply: never[];
29
+ };
30
+ latest_reactions_extra: {
31
+ like: never[];
32
+ reply: never[];
33
+ };
34
+ object: string;
35
+ origin: null;
36
+ own_reactions: {
37
+ like: never[];
38
+ reply: never[];
39
+ };
40
+ reaction_counts: {
41
+ like: number;
42
+ reply: number;
43
+ };
44
+ target: string;
45
+ time: string;
46
+ verb: string;
19
47
  };
20
- categories: string[];
21
- content: string;
22
- feed_id: string;
23
- foreign_id: string;
24
- id: string;
25
- latest_reactions: {
26
- like: never[];
27
- reply: never[];
28
- };
29
- latest_reactions_extra: {
30
- like: never[];
31
- reply: never[];
32
- };
33
- object: string;
34
- origin: null;
35
- own_reactions: {
36
- like: never[];
37
- reply: never[];
38
- };
39
- reaction_counts: {
40
- like: number;
41
- reply: number;
48
+ POLL: {
49
+ total_replies: number;
50
+ verb: string;
42
51
  };
43
- target: string;
44
- time: string;
45
- verb: string;
46
52
  };
@@ -1,2 +1,3 @@
1
1
  export { repliesFeedMock } from '../../../feeds/replies-feed';
2
+ export * from './activity-functions.mock';
2
3
  export * from './activity-section.mock';
@@ -1,6 +1,7 @@
1
1
  import { MemberProps, MemberDetailsProps } from '../../../user';
2
2
  import type { ListMembers, ClickMentionFallback } from '../../../form';
3
3
  import type { IEnrichedUrlData } from '../../../navigation';
4
+ import { IDiscussionFormFns } from '../../discussion';
4
5
  export type IDiscussionContentType = 'answer' | 'post' | 'response' | 'reply' | 'question';
5
6
  export interface IDiscussionContent {
6
7
  /** The type of content */
@@ -90,3 +91,21 @@ export interface IConversation {
90
91
  prepopulateForm?: string;
91
92
  mentionData?: IListMemberData;
92
93
  }
94
+ export interface IDiscussionFormFunctions extends IDiscussionFormFns {
95
+ onChange?: (args: {
96
+ [key: string]: string | boolean;
97
+ }) => void;
98
+ create: DiscussionCreateContentFunction;
99
+ handleSaveEdit?: (({ title, body }: {
100
+ title: string;
101
+ body: string;
102
+ }) => Promise<void>) | (() => void);
103
+ handleCancel?: () => void;
104
+ callback?: (args: void) => void;
105
+ onMention?: (value?: IListMemberData) => void;
106
+ props?: {
107
+ create: {
108
+ projectNames: ['questions-answers'];
109
+ };
110
+ };
111
+ }
package/helpers/intl.d.ts CHANGED
@@ -171,7 +171,6 @@ export declare const checkIntlPathExists: (path: string, language?: {
171
171
  discussion_moreMenu_report: string;
172
172
  discussion_comments_screenReader: string;
173
173
  discussion_comments: string;
174
- discussion_comments_loading: string;
175
174
  discussion_responses_answer: string;
176
175
  discussion_responses_comment: string;
177
176
  discussion_responses_title: string;
@@ -351,6 +350,7 @@ export declare const checkIntlPathExists: (path: string, language?: {
351
350
  poll_num_votes: string;
352
351
  poll_remove_vote_button: string;
353
352
  poll_aria_votes: string;
353
+ replies_feed_missing_polls_vote_message: string;
354
354
  tableOfContents: string;
355
355
  timeToComplete_hours: string;
356
356
  timeToComplete_hours_short: string;