@amityco/react-native-social-uikit 4.0.0-RC.22 → 4.0.0-RC.24
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.
- package/lib/commonjs/components/CustomText/index.js +3 -4
- package/lib/commonjs/components/CustomText/index.js.map +1 -1
- package/lib/commonjs/components/Social/PostList/Components/RenderTextWithMention.js.map +1 -1
- package/lib/commonjs/components/StoryKit/src/Story.js +1 -1
- package/lib/commonjs/components/StoryKit/src/Story.js.map +1 -1
- package/lib/commonjs/components/StoryKit/src/helpers/StateHelpers.js +1 -1
- package/lib/commonjs/components/StoryKit/src/helpers/StateHelpers.js.map +1 -1
- package/lib/commonjs/redux/slices/bottomSheetSlice.js.map +1 -1
- package/lib/commonjs/v4/PublicApi/Components/AmityCommunityHeaderComponent/AmityCommunityHeaderComponent.js +3 -6
- package/lib/commonjs/v4/PublicApi/Components/AmityCommunityHeaderComponent/AmityCommunityHeaderComponent.js.map +1 -1
- package/lib/commonjs/v4/PublicApi/Components/AmityCreatePostMenuComponent/AmityCreatePostMenuComponent.js +3 -1
- package/lib/commonjs/v4/PublicApi/Components/AmityCreatePostMenuComponent/AmityCreatePostMenuComponent.js.map +1 -1
- package/lib/commonjs/v4/PublicApi/Components/AmityPendingPostListComponent/AmityPendingPostListComponent.js +2 -6
- package/lib/commonjs/v4/PublicApi/Components/AmityPendingPostListComponent/AmityPendingPostListComponent.js.map +1 -1
- package/lib/commonjs/v4/PublicApi/Components/AmityPostContentComponent/AmityPostContentComponent.js +3 -6
- package/lib/commonjs/v4/PublicApi/Components/AmityPostContentComponent/AmityPostContentComponent.js.map +1 -1
- package/lib/commonjs/v4/PublicApi/Components/AmityThumbnailActionComponent/AmityThumbnailActionComponent.js.map +1 -1
- package/lib/commonjs/v4/PublicApi/Elements/ModeratorBadgeElement/ModeratorBadgeElement.js +3 -7
- package/lib/commonjs/v4/PublicApi/Elements/ModeratorBadgeElement/ModeratorBadgeElement.js.map +1 -1
- package/lib/commonjs/v4/PublicApi/Pages/AmityCommunityProfilePage/AmityCommunityProfilePage.js +3 -1
- package/lib/commonjs/v4/PublicApi/Pages/AmityCommunityProfilePage/AmityCommunityProfilePage.js.map +1 -1
- package/lib/commonjs/v4/PublicApi/Pages/AmityLivestreamPlayerPage/AmityLivestreamPlayerPage.js +1 -1
- package/lib/commonjs/v4/PublicApi/Pages/AmityLivestreamPlayerPage/AmityLivestreamPlayerPage.js.map +1 -1
- package/lib/commonjs/v4/PublicApi/Pages/AmityPostComposerPage/AmityPostComposerPage.js +3 -6
- package/lib/commonjs/v4/PublicApi/Pages/AmityPostComposerPage/AmityPostComposerPage.js.map +1 -1
- package/lib/commonjs/v4/PublicApi/Pages/AmityViewStoryPage/AmityViewStoryPage.js +3 -1
- package/lib/commonjs/v4/PublicApi/Pages/AmityViewStoryPage/AmityViewStoryPage.js.map +1 -1
- package/lib/commonjs/v4/component/CommunityStories/index.js +4 -1
- package/lib/commonjs/v4/component/CommunityStories/index.js.map +1 -1
- package/lib/commonjs/v4/component/MyStories/StoryCircleItem.js +19 -4
- package/lib/commonjs/v4/component/MyStories/StoryCircleItem.js.map +1 -1
- package/lib/commonjs/v4/component/MyStories/StoryTargetView.js +4 -2
- package/lib/commonjs/v4/component/MyStories/StoryTargetView.js.map +1 -1
- package/lib/commonjs/v4/component/PostMenu/index.js +3 -8
- package/lib/commonjs/v4/component/PostMenu/index.js.map +1 -1
- package/lib/commonjs/v4/component/RenderTextWithMention/RenderTextWithMention.js.map +1 -1
- package/lib/commonjs/v4/component/StoryKit/src/Story.js +1 -1
- package/lib/commonjs/v4/component/StoryKit/src/Story.js.map +1 -1
- package/lib/commonjs/v4/component/StoryKit/src/StoryCircleListItem.js +3 -1
- package/lib/commonjs/v4/component/StoryKit/src/StoryCircleListItem.js.map +1 -1
- package/lib/commonjs/v4/component/StoryKit/src/StoryListItem.js +3 -1
- package/lib/commonjs/v4/component/StoryKit/src/StoryListItem.js.map +1 -1
- package/lib/commonjs/v4/component/StoryKit/src/helpers/StateHelpers.js +1 -1
- package/lib/commonjs/v4/component/StoryKit/src/helpers/StateHelpers.js.map +1 -1
- package/lib/commonjs/v4/elements/ChangeThumbnailButton/ChangeThumbnailButton.js.map +1 -1
- package/lib/commonjs/v4/elements/DeleteThumbnailButton/DeleteThumbnailButton.js.map +1 -1
- package/lib/commonjs/v4/hook/index.js +4 -4
- package/lib/commonjs/v4/hook/index.js.map +1 -1
- package/lib/commonjs/v4/hook/isModerator.js +22 -0
- package/lib/commonjs/v4/hook/isModerator.js.map +1 -0
- package/lib/commonjs/v4/hook/useStoryPermission.js +4 -3
- package/lib/commonjs/v4/hook/useStoryPermission.js.map +1 -1
- package/lib/commonjs/v4/utils/permissions.js +8 -3
- package/lib/commonjs/v4/utils/permissions.js.map +1 -1
- package/lib/module/components/CustomText/index.js +3 -4
- package/lib/module/components/CustomText/index.js.map +1 -1
- package/lib/module/components/Social/PostList/Components/RenderTextWithMention.js.map +1 -1
- package/lib/module/components/StoryKit/src/Story.js +1 -1
- package/lib/module/components/StoryKit/src/Story.js.map +1 -1
- package/lib/module/components/StoryKit/src/helpers/StateHelpers.js +1 -1
- package/lib/module/components/StoryKit/src/helpers/StateHelpers.js.map +1 -1
- package/lib/module/redux/slices/bottomSheetSlice.js.map +1 -1
- package/lib/module/v4/PublicApi/Components/AmityCommunityHeaderComponent/AmityCommunityHeaderComponent.js +4 -7
- package/lib/module/v4/PublicApi/Components/AmityCommunityHeaderComponent/AmityCommunityHeaderComponent.js.map +1 -1
- package/lib/module/v4/PublicApi/Components/AmityCreatePostMenuComponent/AmityCreatePostMenuComponent.js +3 -1
- package/lib/module/v4/PublicApi/Components/AmityCreatePostMenuComponent/AmityCreatePostMenuComponent.js.map +1 -1
- package/lib/module/v4/PublicApi/Components/AmityPendingPostListComponent/AmityPendingPostListComponent.js +3 -7
- package/lib/module/v4/PublicApi/Components/AmityPendingPostListComponent/AmityPendingPostListComponent.js.map +1 -1
- package/lib/module/v4/PublicApi/Components/AmityPostContentComponent/AmityPostContentComponent.js +4 -7
- package/lib/module/v4/PublicApi/Components/AmityPostContentComponent/AmityPostContentComponent.js.map +1 -1
- package/lib/module/v4/PublicApi/Components/AmityThumbnailActionComponent/AmityThumbnailActionComponent.js.map +1 -1
- package/lib/module/v4/PublicApi/Elements/ModeratorBadgeElement/ModeratorBadgeElement.js +4 -9
- package/lib/module/v4/PublicApi/Elements/ModeratorBadgeElement/ModeratorBadgeElement.js.map +1 -1
- package/lib/module/v4/PublicApi/Pages/AmityCommunityProfilePage/AmityCommunityProfilePage.js +3 -1
- package/lib/module/v4/PublicApi/Pages/AmityCommunityProfilePage/AmityCommunityProfilePage.js.map +1 -1
- package/lib/module/v4/PublicApi/Pages/AmityLivestreamPlayerPage/AmityLivestreamPlayerPage.js +1 -1
- package/lib/module/v4/PublicApi/Pages/AmityLivestreamPlayerPage/AmityLivestreamPlayerPage.js.map +1 -1
- package/lib/module/v4/PublicApi/Pages/AmityPostComposerPage/AmityPostComposerPage.js +4 -7
- package/lib/module/v4/PublicApi/Pages/AmityPostComposerPage/AmityPostComposerPage.js.map +1 -1
- package/lib/module/v4/PublicApi/Pages/AmityViewStoryPage/AmityViewStoryPage.js +3 -1
- package/lib/module/v4/PublicApi/Pages/AmityViewStoryPage/AmityViewStoryPage.js.map +1 -1
- package/lib/module/v4/component/CommunityStories/index.js +4 -1
- package/lib/module/v4/component/CommunityStories/index.js.map +1 -1
- package/lib/module/v4/component/MyStories/StoryCircleItem.js +19 -4
- package/lib/module/v4/component/MyStories/StoryCircleItem.js.map +1 -1
- package/lib/module/v4/component/MyStories/StoryTargetView.js +4 -2
- package/lib/module/v4/component/MyStories/StoryTargetView.js.map +1 -1
- package/lib/module/v4/component/PostMenu/index.js +4 -9
- package/lib/module/v4/component/PostMenu/index.js.map +1 -1
- package/lib/module/v4/component/RenderTextWithMention/RenderTextWithMention.js.map +1 -1
- package/lib/module/v4/component/StoryKit/src/Story.js +1 -1
- package/lib/module/v4/component/StoryKit/src/Story.js.map +1 -1
- package/lib/module/v4/component/StoryKit/src/StoryCircleListItem.js +3 -1
- package/lib/module/v4/component/StoryKit/src/StoryCircleListItem.js.map +1 -1
- package/lib/module/v4/component/StoryKit/src/StoryListItem.js +3 -1
- package/lib/module/v4/component/StoryKit/src/StoryListItem.js.map +1 -1
- package/lib/module/v4/component/StoryKit/src/helpers/StateHelpers.js +1 -1
- package/lib/module/v4/component/StoryKit/src/helpers/StateHelpers.js.map +1 -1
- package/lib/module/v4/elements/ChangeThumbnailButton/ChangeThumbnailButton.js.map +1 -1
- package/lib/module/v4/elements/DeleteThumbnailButton/DeleteThumbnailButton.js.map +1 -1
- package/lib/module/v4/hook/index.js +1 -1
- package/lib/module/v4/hook/index.js.map +1 -1
- package/lib/module/v4/hook/isModerator.js +15 -0
- package/lib/module/v4/hook/isModerator.js.map +1 -0
- package/lib/module/v4/hook/useStoryPermission.js +5 -4
- package/lib/module/v4/hook/useStoryPermission.js.map +1 -1
- package/lib/module/v4/utils/permissions.js +8 -3
- package/lib/module/v4/utils/permissions.js.map +1 -1
- package/lib/typescript/src/components/CustomText/index.d.ts.map +1 -1
- package/lib/typescript/src/components/StoryKit/src/Story.d.ts.map +1 -1
- package/lib/typescript/src/components/StoryKit/src/helpers/StateHelpers.d.ts +1 -1
- package/lib/typescript/src/components/StoryKit/src/helpers/StateHelpers.d.ts.map +1 -1
- package/lib/typescript/src/redux/slices/bottomSheetSlice.d.ts +4 -3
- package/lib/typescript/src/redux/slices/bottomSheetSlice.d.ts.map +1 -1
- package/lib/typescript/src/v4/PublicApi/Components/AmityCommunityHeaderComponent/AmityCommunityHeaderComponent.d.ts.map +1 -1
- package/lib/typescript/src/v4/PublicApi/Components/AmityCreatePostMenuComponent/AmityCreatePostMenuComponent.d.ts +1 -1
- package/lib/typescript/src/v4/PublicApi/Components/AmityCreatePostMenuComponent/AmityCreatePostMenuComponent.d.ts.map +1 -1
- package/lib/typescript/src/v4/PublicApi/Components/AmityPendingPostListComponent/AmityPendingPostListComponent.d.ts.map +1 -1
- package/lib/typescript/src/v4/PublicApi/Components/AmityPostCommentComponent/AmityPostCommentComponent.d.ts +1 -1
- package/lib/typescript/src/v4/PublicApi/Components/AmityPostCommentComponent/AmityPostCommentComponent.d.ts.map +1 -1
- package/lib/typescript/src/v4/PublicApi/Components/AmityPostContentComponent/AmityPostContentComponent.d.ts.map +1 -1
- package/lib/typescript/src/v4/PublicApi/Components/AmityThumbnailActionComponent/AmityThumbnailActionComponent.d.ts +2 -1
- package/lib/typescript/src/v4/PublicApi/Components/AmityThumbnailActionComponent/AmityThumbnailActionComponent.d.ts.map +1 -1
- package/lib/typescript/src/v4/PublicApi/Elements/ModeratorBadgeElement/ModeratorBadgeElement.d.ts.map +1 -1
- package/lib/typescript/src/v4/PublicApi/Pages/AmityPostComposerPage/AmityPostComposerPage.d.ts.map +1 -1
- package/lib/typescript/src/v4/component/CommunityStories/index.d.ts.map +1 -1
- package/lib/typescript/src/v4/component/MyStories/StoryCircleItem.d.ts.map +1 -1
- package/lib/typescript/src/v4/component/MyStories/StoryTargetView.d.ts.map +1 -1
- package/lib/typescript/src/v4/component/PostMenu/index.d.ts.map +1 -1
- package/lib/typescript/src/v4/component/RenderTextWithMention/RenderTextWithMention.d.ts.map +1 -1
- package/lib/typescript/src/v4/component/StoryKit/src/Story.d.ts.map +1 -1
- package/lib/typescript/src/v4/component/StoryKit/src/helpers/StateHelpers.d.ts +1 -1
- package/lib/typescript/src/v4/component/StoryKit/src/helpers/StateHelpers.d.ts.map +1 -1
- package/lib/typescript/src/v4/elements/ChangeThumbnailButton/ChangeThumbnailButton.d.ts +2 -1
- package/lib/typescript/src/v4/elements/ChangeThumbnailButton/ChangeThumbnailButton.d.ts.map +1 -1
- package/lib/typescript/src/v4/elements/DeleteThumbnailButton/DeleteThumbnailButton.d.ts +2 -1
- package/lib/typescript/src/v4/elements/DeleteThumbnailButton/DeleteThumbnailButton.d.ts.map +1 -1
- package/lib/typescript/src/v4/features/community/Setting/elements/CloseCommunityDescription/CloseCommunityDescription.d.ts +2 -2
- package/lib/typescript/src/v4/features/community/Setting/elements/CloseCommunityDescription/CloseCommunityDescription.d.ts.map +1 -1
- package/lib/typescript/src/v4/hook/index.d.ts +1 -1
- package/lib/typescript/src/v4/hook/index.d.ts.map +1 -1
- package/lib/typescript/src/v4/hook/isModerator.d.ts +2 -0
- package/lib/typescript/src/v4/hook/isModerator.d.ts.map +1 -0
- package/lib/typescript/src/v4/hook/useStoryPermission.d.ts +3 -1
- package/lib/typescript/src/v4/hook/useStoryPermission.d.ts.map +1 -1
- package/lib/typescript/src/v4/utils/permissions.d.ts +1 -1
- package/lib/typescript/src/v4/utils/permissions.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/CustomText/index.tsx +6 -5
- package/src/components/Social/PostList/Components/RenderTextWithMention.tsx +1 -1
- package/src/components/StoryKit/src/Story.tsx +3 -1
- package/src/components/StoryKit/src/helpers/StateHelpers.ts +2 -2
- package/src/redux/slices/bottomSheetSlice.ts +3 -2
- package/src/v4/PublicApi/Components/AmityCommunityHeaderComponent/AmityCommunityHeaderComponent.tsx +4 -9
- package/src/v4/PublicApi/Components/AmityCreatePostMenuComponent/AmityCreatePostMenuComponent.tsx +2 -2
- package/src/v4/PublicApi/Components/AmityPendingPostListComponent/AmityPendingPostListComponent.tsx +3 -5
- package/src/v4/PublicApi/Components/AmityPostCommentComponent/AmityPostCommentComponent.tsx +1 -1
- package/src/v4/PublicApi/Components/AmityPostContentComponent/AmityPostContentComponent.tsx +4 -5
- package/src/v4/PublicApi/Components/AmityThumbnailActionComponent/AmityThumbnailActionComponent.tsx +1 -1
- package/src/v4/PublicApi/Elements/ModeratorBadgeElement/ModeratorBadgeElement.tsx +4 -7
- package/src/v4/PublicApi/Pages/AmityCommunityProfilePage/AmityCommunityProfilePage.tsx +1 -1
- package/src/v4/PublicApi/Pages/AmityLivestreamPlayerPage/AmityLivestreamPlayerPage.tsx +1 -1
- package/src/v4/PublicApi/Pages/AmityPostComposerPage/AmityPostComposerPage.tsx +4 -5
- package/src/v4/PublicApi/Pages/AmityViewStoryPage/AmityViewStoryPage.tsx +1 -1
- package/src/v4/component/CommunityStories/index.tsx +3 -1
- package/src/v4/component/MyStories/StoryCircleItem.tsx +17 -4
- package/src/v4/component/MyStories/StoryTargetView.tsx +4 -2
- package/src/v4/component/PostMenu/index.tsx +6 -8
- package/src/v4/component/RenderTextWithMention/RenderTextWithMention.tsx +3 -4
- package/src/v4/component/StoryKit/src/Story.tsx +3 -1
- package/src/v4/component/StoryKit/src/StoryCircleListItem.tsx +1 -1
- package/src/v4/component/StoryKit/src/StoryListItem.tsx +1 -1
- package/src/v4/component/StoryKit/src/helpers/StateHelpers.ts +2 -2
- package/src/v4/elements/ChangeThumbnailButton/ChangeThumbnailButton.tsx +1 -1
- package/src/v4/elements/DeleteThumbnailButton/DeleteThumbnailButton.tsx +1 -1
- package/src/v4/features/community/Setting/elements/CloseCommunityDescription/CloseCommunityDescription.tsx +2 -2
- package/src/v4/hook/index.ts +1 -1
- package/src/v4/hook/isModerator.ts +19 -0
- package/src/v4/hook/useStoryPermission.ts +2 -8
- package/src/v4/utils/permissions.ts +13 -8
- package/lib/commonjs/v4/hook/useIsCommunityModerator.js +0 -43
- package/lib/commonjs/v4/hook/useIsCommunityModerator.js.map +0 -1
- package/lib/module/v4/hook/useIsCommunityModerator.js +0 -36
- package/lib/module/v4/hook/useIsCommunityModerator.js.map +0 -1
- package/lib/typescript/src/v4/hook/useIsCommunityModerator.d.ts +0 -7
- package/lib/typescript/src/v4/hook/useIsCommunityModerator.d.ts.map +0 -1
- package/src/v4/hook/useIsCommunityModerator.ts +0 -35
|
@@ -88,8 +88,8 @@ const RenderTextWithMention: React.FC<IrenderTextWithMention> = ({
|
|
|
88
88
|
}
|
|
89
89
|
|
|
90
90
|
let currentPosition = 0;
|
|
91
|
-
const result: (string |
|
|
92
|
-
({ index, length, userId, link }, i) => {
|
|
91
|
+
const result: (string | React.ReactElement)[][] =
|
|
92
|
+
heightlightTextPositions.map(({ index, length, userId, link }, i) => {
|
|
93
93
|
// Add non-highlighted text before the mention
|
|
94
94
|
const nonHighlightedText = textPost.slice(currentPosition, index);
|
|
95
95
|
// Add highlighted text
|
|
@@ -109,8 +109,7 @@ const RenderTextWithMention: React.FC<IrenderTextWithMention> = ({
|
|
|
109
109
|
|
|
110
110
|
// Return an array of non-highlighted and highlighted text
|
|
111
111
|
return [nonHighlightedText, highlightedText];
|
|
112
|
-
}
|
|
113
|
-
);
|
|
112
|
+
});
|
|
114
113
|
|
|
115
114
|
// Add any remaining non-highlighted text after the mentions
|
|
116
115
|
const remainingText = textPost.slice(currentPosition);
|
|
@@ -22,7 +22,9 @@ export const Story = ({
|
|
|
22
22
|
const [isModalOpen, setIsModalOpen] = useState<boolean>(false);
|
|
23
23
|
const [currentPage, setCurrentPage] = useState<number>(0);
|
|
24
24
|
const [selectedData, setSelectedData] = useState<IUserStory[]>([]);
|
|
25
|
-
const cube = useRef<CubeNavigationHorizontal | AndroidCubeEffect>(
|
|
25
|
+
const cube = useRef<CubeNavigationHorizontal | AndroidCubeEffect | null>(
|
|
26
|
+
null
|
|
27
|
+
);
|
|
26
28
|
// Component Functions
|
|
27
29
|
const _handleStoryItemPress = (item: IUserStory, index?: number) => {
|
|
28
30
|
if (item?.stories?.length === 0) return;
|
|
@@ -25,7 +25,7 @@ const StoryCircleListItem = ({
|
|
|
25
25
|
const styles = useStyles();
|
|
26
26
|
const [, setIsPressed] = useState(item?.seen);
|
|
27
27
|
const prevSeen = usePrevious(item?.seen);
|
|
28
|
-
const hasStoryPermission = useStoryPermission(item.user_id);
|
|
28
|
+
const { hasStoryPermission } = useStoryPermission(item.user_id);
|
|
29
29
|
const { getUiKitConfig } = useConfig();
|
|
30
30
|
const storyRingColor: string[] = item?.seen
|
|
31
31
|
? ['#e2e2e2', '#e2e2e2']
|
|
@@ -61,7 +61,7 @@ export const StoryListItem = ({
|
|
|
61
61
|
isModerator,
|
|
62
62
|
}: StoryListItemProps) => {
|
|
63
63
|
const styles = useStyles();
|
|
64
|
-
const hasStoryPermission = useStoryPermission(userId);
|
|
64
|
+
const { hasStoryPermission } = useStoryPermission(userId);
|
|
65
65
|
const { getUiKitConfig } = useConfig();
|
|
66
66
|
const storyReactionBgColor =
|
|
67
67
|
(getUiKitConfig({
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { useEffect, useRef } from 'react';
|
|
2
2
|
|
|
3
|
-
export function usePrevious(value:
|
|
4
|
-
const ref = useRef();
|
|
3
|
+
export function usePrevious<T>(value: T): T | undefined {
|
|
4
|
+
const ref = useRef<T | undefined>(undefined);
|
|
5
5
|
useEffect(() => {
|
|
6
6
|
ref.current = value;
|
|
7
7
|
});
|
|
@@ -16,7 +16,7 @@ const ChangeThumbnailButton = ({
|
|
|
16
16
|
pageId = PageID.WildCardPage,
|
|
17
17
|
componentId = ComponentID.WildCardComponent,
|
|
18
18
|
...props
|
|
19
|
-
}: ChangeThumbnailButtonProps):
|
|
19
|
+
}: ChangeThumbnailButtonProps): React.ReactElement => {
|
|
20
20
|
const { themeStyles, config } = useAmityElement({
|
|
21
21
|
pageId,
|
|
22
22
|
componentId,
|
|
@@ -16,7 +16,7 @@ const ChangeThumbnailButton = ({
|
|
|
16
16
|
pageId = PageID.WildCardPage,
|
|
17
17
|
componentId = ComponentID.WildCardComponent,
|
|
18
18
|
...props
|
|
19
|
-
}: ChangeThumbnailButtonProps):
|
|
19
|
+
}: ChangeThumbnailButtonProps): React.ReactElement => {
|
|
20
20
|
const { themeStyles, config } = useAmityElement({
|
|
21
21
|
pageId,
|
|
22
22
|
componentId,
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { TextProps } from 'react-native';
|
|
3
3
|
import { useAmityElement } from '../../../../../../v4/hook';
|
|
4
4
|
import { ComponentID, ElementID, PageID } from '../../../../../../v4/enum';
|
|
5
5
|
import { useStyles } from './styles';
|
|
6
6
|
import { Typography } from '../../../../../../v4/component/Typography/Typography';
|
|
7
7
|
|
|
8
|
-
type CloseCommunityDescriptionProps =
|
|
8
|
+
type CloseCommunityDescriptionProps = TextProps & {
|
|
9
9
|
pageId?: PageID;
|
|
10
10
|
componentId?: ComponentID;
|
|
11
11
|
elementId?: ElementID;
|
package/src/v4/hook/index.ts
CHANGED
|
@@ -14,7 +14,7 @@ export * from './useCommunities';
|
|
|
14
14
|
export * from './useCommunity';
|
|
15
15
|
export * from './useCategory';
|
|
16
16
|
export * from './useUiKitReference';
|
|
17
|
-
export * from './
|
|
17
|
+
export * from './isModerator';
|
|
18
18
|
export * from './useSearch';
|
|
19
19
|
export * from './useTimeDifference';
|
|
20
20
|
export * from './useReaction';
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { MemberRoles } from '../constants';
|
|
2
|
+
|
|
3
|
+
const { COMMUNITY_MODERATOR, CHANNEL_MODERATOR, MODERATOR, SUPER_MODERATOR } =
|
|
4
|
+
MemberRoles;
|
|
5
|
+
|
|
6
|
+
export const isModerator = (userRoles?: string[]) => {
|
|
7
|
+
if (!userRoles?.length) {
|
|
8
|
+
return false;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
const roles: string[] = [
|
|
12
|
+
COMMUNITY_MODERATOR,
|
|
13
|
+
CHANNEL_MODERATOR,
|
|
14
|
+
MODERATOR,
|
|
15
|
+
SUPER_MODERATOR,
|
|
16
|
+
];
|
|
17
|
+
|
|
18
|
+
return userRoles.some((role) => roles.includes(role));
|
|
19
|
+
};
|
|
@@ -1,11 +1,7 @@
|
|
|
1
1
|
import useAuth from '../../hooks/useAuth';
|
|
2
2
|
import { useUser } from './useUser';
|
|
3
3
|
import useSocialSettings from '../core/hooks/useSocialSettings';
|
|
4
|
-
import {
|
|
5
|
-
isAdmin,
|
|
6
|
-
isModerator,
|
|
7
|
-
checkStoryPermission,
|
|
8
|
-
} from '../utils/permissions';
|
|
4
|
+
import { checkStoryPermission, isAdmin } from '../utils/permissions';
|
|
9
5
|
|
|
10
6
|
export function useStoryPermission(communityId?: string) {
|
|
11
7
|
const { client } = useAuth();
|
|
@@ -13,14 +9,12 @@ export function useStoryPermission(communityId?: string) {
|
|
|
13
9
|
const user = useUser(client?.userId || '');
|
|
14
10
|
|
|
15
11
|
const isGlobalAdmin = isAdmin(user?.roles);
|
|
16
|
-
const isModeratorUser = isModerator(user?.roles);
|
|
17
12
|
|
|
18
13
|
const hasStoryPermission = !communityId
|
|
19
14
|
? socialSettings?.story?.allowAllUserToCreateStory
|
|
20
15
|
: socialSettings?.story?.allowAllUserToCreateStory ||
|
|
21
16
|
isGlobalAdmin ||
|
|
22
|
-
isModeratorUser ||
|
|
23
17
|
checkStoryPermission(client, communityId);
|
|
24
18
|
|
|
25
|
-
return hasStoryPermission;
|
|
19
|
+
return { hasStoryPermission };
|
|
26
20
|
}
|
|
@@ -49,14 +49,19 @@ export const isAdmin = (roles: string[] = []) => {
|
|
|
49
49
|
};
|
|
50
50
|
|
|
51
51
|
export const checkStoryPermission = (
|
|
52
|
-
client: Amity.Client,
|
|
53
|
-
communityId
|
|
54
|
-
) => {
|
|
55
|
-
if (!client
|
|
52
|
+
client: Amity.Client | null | undefined,
|
|
53
|
+
communityId?: string
|
|
54
|
+
): boolean => {
|
|
55
|
+
if (!client) {
|
|
56
|
+
return false;
|
|
57
|
+
}
|
|
56
58
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
59
|
+
if (communityId) {
|
|
60
|
+
const communityPermission = client
|
|
61
|
+
.hasPermission(Permissions.ManageStoryPermission)
|
|
62
|
+
.community(communityId);
|
|
63
|
+
return communityPermission;
|
|
64
|
+
}
|
|
60
65
|
|
|
61
|
-
return
|
|
66
|
+
return false;
|
|
62
67
|
};
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.useIsCommunityModerator = void 0;
|
|
7
|
-
var _tsSdkReactNative = require("@amityco/ts-sdk-react-native");
|
|
8
|
-
var _permission = require("../../util/permission");
|
|
9
|
-
var _react = require("react");
|
|
10
|
-
const useIsCommunityModerator = ({
|
|
11
|
-
userId,
|
|
12
|
-
communityId
|
|
13
|
-
}) => {
|
|
14
|
-
const [isCommunityModerator, setisCommunityModerator] = (0, _react.useState)(false);
|
|
15
|
-
(0, _react.useEffect)(() => {
|
|
16
|
-
if (!userId || !communityId) return setisCommunityModerator(false);
|
|
17
|
-
const unsub = _tsSdkReactNative.CommunityRepository.Membership.searchMembers({
|
|
18
|
-
communityId: communityId,
|
|
19
|
-
search: userId,
|
|
20
|
-
limit: 1,
|
|
21
|
-
sortBy: 'firstCreated',
|
|
22
|
-
memberships: ['member']
|
|
23
|
-
}, async ({
|
|
24
|
-
error,
|
|
25
|
-
loading,
|
|
26
|
-
data
|
|
27
|
-
}) => {
|
|
28
|
-
if (error) return setisCommunityModerator(false);
|
|
29
|
-
if (!loading) {
|
|
30
|
-
var _data$;
|
|
31
|
-
const userRoles = ((_data$ = data[0]) === null || _data$ === void 0 ? void 0 : _data$.roles) ?? [];
|
|
32
|
-
return setisCommunityModerator(() => (0, _permission.isModerator)(userRoles));
|
|
33
|
-
}
|
|
34
|
-
return setisCommunityModerator(false);
|
|
35
|
-
});
|
|
36
|
-
return () => unsub();
|
|
37
|
-
}, [communityId, userId]);
|
|
38
|
-
return {
|
|
39
|
-
isCommunityModerator: isCommunityModerator
|
|
40
|
-
};
|
|
41
|
-
};
|
|
42
|
-
exports.useIsCommunityModerator = useIsCommunityModerator;
|
|
43
|
-
//# sourceMappingURL=useIsCommunityModerator.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["_tsSdkReactNative","require","_permission","_react","useIsCommunityModerator","userId","communityId","isCommunityModerator","setisCommunityModerator","useState","useEffect","unsub","CommunityRepository","Membership","searchMembers","search","limit","sortBy","memberships","error","loading","data","_data$","userRoles","roles","isModerator","exports"],"sourceRoot":"../../../../src","sources":["v4/hook/useIsCommunityModerator.ts"],"mappings":";;;;;;AAAA,IAAAA,iBAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AAEO,MAAMG,uBAAuB,GAAGA,CAAC;EACtCC,MAAM;EACNC;AAIF,CAAC,KAAK;EACJ,MAAM,CAACC,oBAAoB,EAAEC,uBAAuB,CAAC,GAAG,IAAAC,eAAQ,EAAC,KAAK,CAAC;EACvE,IAAAC,gBAAS,EAAC,MAAM;IACd,IAAI,CAACL,MAAM,IAAI,CAACC,WAAW,EAAE,OAAOE,uBAAuB,CAAC,KAAK,CAAC;IAClE,MAAMG,KAAK,GAAGC,qCAAmB,CAACC,UAAU,CAACC,aAAa,CACxD;MACER,WAAW,EAAEA,WAAW;MACxBS,MAAM,EAAEV,MAAM;MACdW,KAAK,EAAE,CAAC;MACRC,MAAM,EAAE,cAAc;MACtBC,WAAW,EAAE,CAAC,QAAQ;IACxB,CAAC,EACD,OAAO;MAAEC,KAAK;MAAEC,OAAO;MAAEC;IAAK,CAAC,KAAK;MAClC,IAAIF,KAAK,EAAE,OAAOX,uBAAuB,CAAC,KAAK,CAAC;MAChD,IAAI,CAACY,OAAO,EAAE;QAAA,IAAAE,MAAA;QACZ,MAAMC,SAAS,GAAG,EAAAD,MAAA,GAAAD,IAAI,CAAC,CAAC,CAAC,cAAAC,MAAA,uBAAPA,MAAA,CAASE,KAAK,KAAI,EAAE;QACtC,OAAOhB,uBAAuB,CAAC,MAAM,IAAAiB,uBAAW,EAACF,SAAS,CAAC,CAAC;MAC9D;MACA,OAAOf,uBAAuB,CAAC,KAAK,CAAC;IACvC,CACF,CAAC;IACD,OAAO,MAAMG,KAAK,CAAC,CAAC;EACtB,CAAC,EAAE,CAACL,WAAW,EAAED,MAAM,CAAC,CAAC;EACzB,OAAO;IAAEE,oBAAoB,EAAEA;EAAqB,CAAC;AACvD,CAAC;AAACmB,OAAA,CAAAtB,uBAAA,GAAAA,uBAAA","ignoreList":[]}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { CommunityRepository } from '@amityco/ts-sdk-react-native';
|
|
2
|
-
import { isModerator } from '../../util/permission';
|
|
3
|
-
import { useEffect, useState } from 'react';
|
|
4
|
-
export const useIsCommunityModerator = ({
|
|
5
|
-
userId,
|
|
6
|
-
communityId
|
|
7
|
-
}) => {
|
|
8
|
-
const [isCommunityModerator, setisCommunityModerator] = useState(false);
|
|
9
|
-
useEffect(() => {
|
|
10
|
-
if (!userId || !communityId) return setisCommunityModerator(false);
|
|
11
|
-
const unsub = CommunityRepository.Membership.searchMembers({
|
|
12
|
-
communityId: communityId,
|
|
13
|
-
search: userId,
|
|
14
|
-
limit: 1,
|
|
15
|
-
sortBy: 'firstCreated',
|
|
16
|
-
memberships: ['member']
|
|
17
|
-
}, async ({
|
|
18
|
-
error,
|
|
19
|
-
loading,
|
|
20
|
-
data
|
|
21
|
-
}) => {
|
|
22
|
-
if (error) return setisCommunityModerator(false);
|
|
23
|
-
if (!loading) {
|
|
24
|
-
var _data$;
|
|
25
|
-
const userRoles = ((_data$ = data[0]) === null || _data$ === void 0 ? void 0 : _data$.roles) ?? [];
|
|
26
|
-
return setisCommunityModerator(() => isModerator(userRoles));
|
|
27
|
-
}
|
|
28
|
-
return setisCommunityModerator(false);
|
|
29
|
-
});
|
|
30
|
-
return () => unsub();
|
|
31
|
-
}, [communityId, userId]);
|
|
32
|
-
return {
|
|
33
|
-
isCommunityModerator: isCommunityModerator
|
|
34
|
-
};
|
|
35
|
-
};
|
|
36
|
-
//# sourceMappingURL=useIsCommunityModerator.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["CommunityRepository","isModerator","useEffect","useState","useIsCommunityModerator","userId","communityId","isCommunityModerator","setisCommunityModerator","unsub","Membership","searchMembers","search","limit","sortBy","memberships","error","loading","data","_data$","userRoles","roles"],"sourceRoot":"../../../../src","sources":["v4/hook/useIsCommunityModerator.ts"],"mappings":"AAAA,SAASA,mBAAmB,QAAQ,8BAA8B;AAClE,SAASC,WAAW,QAAQ,uBAAuB;AACnD,SAASC,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAE3C,OAAO,MAAMC,uBAAuB,GAAGA,CAAC;EACtCC,MAAM;EACNC;AAIF,CAAC,KAAK;EACJ,MAAM,CAACC,oBAAoB,EAAEC,uBAAuB,CAAC,GAAGL,QAAQ,CAAC,KAAK,CAAC;EACvED,SAAS,CAAC,MAAM;IACd,IAAI,CAACG,MAAM,IAAI,CAACC,WAAW,EAAE,OAAOE,uBAAuB,CAAC,KAAK,CAAC;IAClE,MAAMC,KAAK,GAAGT,mBAAmB,CAACU,UAAU,CAACC,aAAa,CACxD;MACEL,WAAW,EAAEA,WAAW;MACxBM,MAAM,EAAEP,MAAM;MACdQ,KAAK,EAAE,CAAC;MACRC,MAAM,EAAE,cAAc;MACtBC,WAAW,EAAE,CAAC,QAAQ;IACxB,CAAC,EACD,OAAO;MAAEC,KAAK;MAAEC,OAAO;MAAEC;IAAK,CAAC,KAAK;MAClC,IAAIF,KAAK,EAAE,OAAOR,uBAAuB,CAAC,KAAK,CAAC;MAChD,IAAI,CAACS,OAAO,EAAE;QAAA,IAAAE,MAAA;QACZ,MAAMC,SAAS,GAAG,EAAAD,MAAA,GAAAD,IAAI,CAAC,CAAC,CAAC,cAAAC,MAAA,uBAAPA,MAAA,CAASE,KAAK,KAAI,EAAE;QACtC,OAAOb,uBAAuB,CAAC,MAAMP,WAAW,CAACmB,SAAS,CAAC,CAAC;MAC9D;MACA,OAAOZ,uBAAuB,CAAC,KAAK,CAAC;IACvC,CACF,CAAC;IACD,OAAO,MAAMC,KAAK,CAAC,CAAC;EACtB,CAAC,EAAE,CAACH,WAAW,EAAED,MAAM,CAAC,CAAC;EACzB,OAAO;IAAEE,oBAAoB,EAAEA;EAAqB,CAAC;AACvD,CAAC","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useIsCommunityModerator.d.ts","sourceRoot":"","sources":["../../../../../src/v4/hook/useIsCommunityModerator.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,uBAAuB,GAAI,0BAGrC;IACD,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACrB;;CAwBA,CAAC"}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { CommunityRepository } from '@amityco/ts-sdk-react-native';
|
|
2
|
-
import { isModerator } from '../../util/permission';
|
|
3
|
-
import { useEffect, useState } from 'react';
|
|
4
|
-
|
|
5
|
-
export const useIsCommunityModerator = ({
|
|
6
|
-
userId,
|
|
7
|
-
communityId,
|
|
8
|
-
}: {
|
|
9
|
-
userId: string;
|
|
10
|
-
communityId: string;
|
|
11
|
-
}) => {
|
|
12
|
-
const [isCommunityModerator, setisCommunityModerator] = useState(false);
|
|
13
|
-
useEffect(() => {
|
|
14
|
-
if (!userId || !communityId) return setisCommunityModerator(false);
|
|
15
|
-
const unsub = CommunityRepository.Membership.searchMembers(
|
|
16
|
-
{
|
|
17
|
-
communityId: communityId,
|
|
18
|
-
search: userId,
|
|
19
|
-
limit: 1,
|
|
20
|
-
sortBy: 'firstCreated',
|
|
21
|
-
memberships: ['member'],
|
|
22
|
-
},
|
|
23
|
-
async ({ error, loading, data }) => {
|
|
24
|
-
if (error) return setisCommunityModerator(false);
|
|
25
|
-
if (!loading) {
|
|
26
|
-
const userRoles = data[0]?.roles ?? [];
|
|
27
|
-
return setisCommunityModerator(() => isModerator(userRoles));
|
|
28
|
-
}
|
|
29
|
-
return setisCommunityModerator(false);
|
|
30
|
-
}
|
|
31
|
-
);
|
|
32
|
-
return () => unsub();
|
|
33
|
-
}, [communityId, userId]);
|
|
34
|
-
return { isCommunityModerator: isCommunityModerator };
|
|
35
|
-
};
|