@apolitical/component-library 6.3.0 → 6.3.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 (39) 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/components/post/index.d.ts +1 -1
  4. package/discussion/components/post/post.d.ts +1 -6
  5. package/discussion/components/post/post.helpers.d.ts +2 -0
  6. package/discussion/feeds/activities-feed/activities-feed.d.ts +2 -4
  7. package/discussion/feeds/replies-feed/cache/hooks/feed/index.d.ts +1 -0
  8. package/discussion/feeds/replies-feed/cache/hooks/feed/parse-replies/index.d.ts +1 -0
  9. package/discussion/feeds/replies-feed/cache/hooks/feed/parse-replies/mocks/index.d.ts +2 -0
  10. package/discussion/feeds/replies-feed/cache/hooks/feed/parse-replies/mocks/replies.mock.d.ts +2 -0
  11. package/discussion/feeds/replies-feed/cache/hooks/feed/parse-replies/mocks/user.mock.d.ts +4 -0
  12. package/discussion/feeds/replies-feed/cache/hooks/feed/parse-replies/parse-replies.d.ts +28 -0
  13. package/discussion/feeds/replies-feed/components/add-reply-form/add-reply-form.d.ts +16 -0
  14. package/discussion/feeds/replies-feed/components/add-reply-form/index.d.ts +1 -0
  15. package/discussion/feeds/replies-feed/components/index.d.ts +3 -0
  16. package/discussion/feeds/replies-feed/components/load-more-replies-button/index.d.ts +1 -0
  17. package/discussion/feeds/replies-feed/components/load-more-replies-button/load-more-replies-button.d.ts +13 -0
  18. package/discussion/feeds/replies-feed/{nested-replies-feed → components/nested-replies-feed}/nested-replies-feed.d.ts +3 -3
  19. package/discussion/feeds/replies-feed/components/reply-item/index.d.ts +1 -0
  20. package/discussion/feeds/replies-feed/components/reply-item/reply-item.d.ts +26 -0
  21. package/discussion/feeds/replies-feed/mocks/index.d.ts +1 -0
  22. package/discussion/feeds/replies-feed/mocks/parsed-replies-feed.mock.d.ts +13 -0
  23. package/discussion/feeds/replies-feed/replies-feed.d.ts +4 -2
  24. package/discussion/sections/activity-section/activity-section.d.ts +2 -4
  25. package/discussion/sections/activity-section/activity-section.helpers.d.ts +2 -0
  26. package/discussion/sections/activity-section/activity-section.mock.d.ts +103 -0
  27. package/discussion/sections/activity-section/mocks/activity-functions.mock.d.ts +46 -0
  28. package/discussion/sections/activity-section/mocks/activity-section.mock.d.ts +45 -39
  29. package/discussion/sections/activity-section/mocks/index.d.ts +1 -0
  30. package/discussion/shared/interfaces/discussion.interface.d.ts +21 -1
  31. package/helpers/intl.d.ts +1 -0
  32. package/index.js +42 -42
  33. package/index.mjs +8500 -8386
  34. package/package.json +1 -1
  35. package/user/badge/interface/badge.interfaces.d.ts +3 -3
  36. package/user/badges/badges.interface.d.ts +1 -1
  37. /package/discussion/feeds/replies-feed/{nested-replies-feed → components/nested-replies-feed}/index.d.ts +0 -0
  38. /package/discussion/feeds/replies-feed/{nested-replies-feed → components/nested-replies-feed}/mocks/index.d.ts +0 -0
  39. /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,3 +1,3 @@
1
1
  export type { IDiscussionPostProps, IPostContent } from './post';
2
2
  export { default as DiscussionPost } from './post';
3
- export { getPostBody } from './post.helpers';
3
+ export { getPostBody, enrichPostCategories } from './post.helpers';
@@ -84,15 +84,10 @@ export interface IDiscussionPostProps {
84
84
  isCommunity?: boolean;
85
85
  /** Whether to show badges and the scope of the badge */
86
86
  badges?: IBadgesOption;
87
- /** Categories for the community */
88
- categories?: {
89
- name: string;
90
- slug: string;
91
- }[];
92
87
  /** The base path, used for slugs */
93
88
  basePath: string;
94
89
  /** The ID of the parent, used for slugs */
95
90
  parentId: string;
96
91
  }
97
- declare const Post: ({ element, content, userHasPermissions, userHasOwnerPermissions, isLoading, originalAuthorId, forceHide, functions, links, className, gtmContext, children, isTruncated, setFocus, isCommunity, badges, categories, basePath, parentId, }: IDiscussionPostProps) => import("react/jsx-runtime").JSX.Element;
92
+ declare const Post: ({ element, content, userHasPermissions, userHasOwnerPermissions, isLoading, originalAuthorId, forceHide, functions, links, className, gtmContext, children, isTruncated, setFocus, isCommunity, badges, basePath, parentId, }: IDiscussionPostProps) => import("react/jsx-runtime").JSX.Element;
98
93
  export default Post;
@@ -1,3 +1,5 @@
1
1
  import { IMentions } from './../../discussion';
2
2
  import { ListMembers } from '../../../form';
3
+ import { ICategory } from '../../shared';
3
4
  export declare const getPostBody: (body: string, isTruncated: boolean | number, mentions?: IMentions, listMembers?: ListMembers) => Promise<string>;
5
+ export declare const enrichPostCategories: (postCategories: string[], allCategories: ICategory[]) => (ICategory | undefined)[];
@@ -1,5 +1,6 @@
1
1
  /// <reference types="react" />
2
2
  import { type IProfileFormProps } from '../../../form';
3
+ import { ICategory } from '../../../discussion/shared';
3
4
  import type { ILikesFeedQueryFns } from '../../../discussion/feeds/likes-feed';
4
5
  import type { IDiscussionFormFns } from '../../../discussion/discussion.d';
5
6
  import { type IQueryFns } from './cache';
@@ -13,10 +14,7 @@ interface Props {
13
14
  /** Whether the user is an owner of the community */
14
15
  isOwner: boolean;
15
16
  /** The categories for the community */
16
- categories: {
17
- name: string;
18
- slug: string;
19
- }[];
17
+ categories: ICategory[];
20
18
  /** Functions for the activities query */
21
19
  functions: {
22
20
  /** Query functions for the activities */
@@ -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;
@@ -3,6 +3,7 @@ import { type IProfileFormProps } from '../../../form';
3
3
  import { type IRepliesFeedQueryFns, type ILikesFeedQueryFns } from '../../../discussion/feeds';
4
4
  import type { IDiscussionFormFns } from './../../discussion.d';
5
5
  import { type IQueryFns } from './cache';
6
+ import { ICategory } from '../../shared';
6
7
  interface IActivitySectionQueryFns extends IQueryFns {
7
8
  remove: () => Promise<void>;
8
9
  }
@@ -21,10 +22,7 @@ export interface IActivitySectionProps {
21
22
  leave: () => Promise<void>;
22
23
  };
23
24
  profile: IProfileFormProps;
24
- categories?: {
25
- name: string;
26
- slug: string;
27
- }[];
25
+ categories?: ICategory[];
28
26
  }
29
27
  declare const ActivitySection: React.FC<IActivitySectionProps>;
30
28
  export default ActivitySection;
@@ -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,8 @@
1
1
  import { MemberProps, MemberDetailsProps } from '../../../user';
2
2
  import type { ListMembers, ClickMentionFallback } from '../../../form';
3
3
  import type { IEnrichedUrlData } from '../../../navigation';
4
+ import type { ICategory } from './community.category.interface';
5
+ import type { IDiscussionFormFns } from '../../discussion';
4
6
  export type IDiscussionContentType = 'answer' | 'post' | 'response' | 'reply' | 'question';
5
7
  export interface IDiscussionContent {
6
8
  /** The type of content */
@@ -26,7 +28,7 @@ export interface IFullDiscussionContent extends IDiscussionContent {
26
28
  /** The author of the post */
27
29
  author: MemberProps;
28
30
  /** The post categories */
29
- categories?: string[];
31
+ categories?: ICategory[];
30
32
  createdAt: Date | string;
31
33
  /** The number of likes to display */
32
34
  likes?: number;
@@ -90,3 +92,21 @@ export interface IConversation {
90
92
  prepopulateForm?: string;
91
93
  mentionData?: IListMemberData;
92
94
  }
95
+ export interface IDiscussionFormFunctions extends IDiscussionFormFns {
96
+ onChange?: (args: {
97
+ [key: string]: string | boolean;
98
+ }) => void;
99
+ create: DiscussionCreateContentFunction;
100
+ handleSaveEdit?: (({ title, body }: {
101
+ title: string;
102
+ body: string;
103
+ }) => Promise<void>) | (() => void);
104
+ handleCancel?: () => void;
105
+ callback?: (args: void) => void;
106
+ onMention?: (value?: IListMemberData) => void;
107
+ props?: {
108
+ create: {
109
+ projectNames: ['questions-answers'];
110
+ };
111
+ };
112
+ }
package/helpers/intl.d.ts CHANGED
@@ -351,6 +351,7 @@ export declare const checkIntlPathExists: (path: string, language?: {
351
351
  poll_num_votes: string;
352
352
  poll_remove_vote_button: string;
353
353
  poll_aria_votes: string;
354
+ replies_feed_missing_polls_vote_message: string;
354
355
  tableOfContents: string;
355
356
  timeToComplete_hours: string;
356
357
  timeToComplete_hours_short: string;