Skip to content

Commit

Permalink
Merge branch 'staging' into dev
Browse files Browse the repository at this point in the history
  • Loading branch information
andreymikhadyuk committed Oct 17, 2023
2 parents fd80c64 + 3900c7d commit 25f8737
Show file tree
Hide file tree
Showing 13 changed files with 41 additions and 66 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -83,14 +83,14 @@ export default function DiscussionDetailModal({
);

useEffect(() => {
if (discussion?.circleVisibilityByCommon?.[governance.commonId]) {
if (discussion?.circleVisibility) {
(async () => {
const governanceCircles = await getCommonGovernanceCircles(
governance.id,
);
const filteredByIdCircles = getFilteredByIdCircles(
governanceCircles ? Object.values(governanceCircles) : null,
discussion?.circleVisibilityByCommon?.[governance.commonId],
discussion?.circleVisibility,
);
const names = getCirclesWithLowestTier(filteredByIdCircles)
.map(({ name }) => name)
Expand All @@ -102,7 +102,7 @@ export default function DiscussionDetailModal({
return () => {
dispatch(chatActions.clearCurrentDiscussionMessageReply());
};
}, [governance.id, governance.commonId, discussion]);
}, [governance.id, discussion]);

const sendMessage = useCallback(
(message: string) => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,22 +52,22 @@ export default function DiscussionItemComponent({
const date = new Date();

useEffect(() => {
if (discussion.circleVisibilityByCommon) {
if (discussion.circleVisibility) {
(async () => {
const governanceCircles = await getCommonGovernanceCircles(
governance.id,
);
const filteredByIdCircles = getFilteredByIdCircles(
governanceCircles ? Object.values(governanceCircles) : null,
discussion.circleVisibilityByCommon?.[governance.commonId],
discussion.circleVisibility,
);
const names = getCirclesWithLowestTier(filteredByIdCircles)
.map(({ name }) => name)
.join(", ");
setCircleNames(names);
})();
}
}, [governance.id, governance.commonId, discussion.circleVisibilityByCommon]);
}, [governance.id, discussion.circleVisibility]);

return (
<div className="discussion-item-wrapper">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ export function MembershipRequestModal(props: IProps) {

const payload: IMembershipRequestData = {
...INIT_DATA,
stage: MembershipRequestStage.Introduce
stage: MembershipRequestStage.Introduce,
};

setUserData(payload);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -189,20 +189,19 @@ export default function CommonDetail(props: CommonDetailProps = {}) {
const circleIds = new Set(
commonMember ? Object.values(commonMember.circles.map) : [],
);
return discussions.filter(({ circleVisibilityByCommon, moderation }) => {
return discussions.filter(({ circleVisibility, moderation }) => {
if (moderation?.flag === ModerationFlags.Hidden) {
return false;
}

const circleVisibility = circleVisibilityByCommon?.[id];
if (!circleVisibility?.length) {
return true;
}
return circleVisibility?.some((discussionCircleId) =>
circleIds.has(discussionCircleId),
);
});
}, [discussions, commonMember, id]);
}, [discussions, commonMember]);

const activeProposals = useMemo(
() => proposals.filter((d) => checkIsCountdownState(d)),
Expand Down
36 changes: 5 additions & 31 deletions src/pages/OldCommon/interfaces/CreateProposalPayload.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,66 +10,40 @@ import {
Survey,
} from "@/shared/models/governance/proposals";

type CircleVisibility = string[] | null;

interface CreateFundsAllocation {
type: ProposalsTypes.FUNDS_ALLOCATION;
args: Omit<FundsAllocation["data"]["args"], "proposerId">;
}

interface CreateMemberAdmittance {
type: ProposalsTypes.MEMBER_ADMITTANCE;
args: Omit<
MemberAdmittance["data"]["args"],
"proposerId" | "circleVisibilityByCommon"
> & {
args: Omit<MemberAdmittance["data"]["args"], "proposerId"> & {
contributionSourceType?: ContributionSourceType;
feeMonthly: PaymentAmount | null;
feeOneTime: PaymentAmount | null;
fromSupportersFlow?: boolean;
receiveEmails?: boolean;
userWhatsapp?: boolean;
circleVisibility?: CircleVisibility;
};
}

interface CreateAssignCircle {
type: ProposalsTypes.ASSIGN_CIRCLE;
args: Omit<
AssignCircle["data"]["args"],
"proposerId" | "circleVisibilityByCommon"
> & {
circleVisibility?: CircleVisibility;
};
args: Omit<AssignCircle["data"]["args"], "proposerId">;
}
interface CreateRemoveCircle {
type: ProposalsTypes.REMOVE_CIRCLE;
args: Omit<
RemoveCircle["data"]["args"],
"proposerId" | "circleVisibilityByCommon"
> & {
circleVisibility?: CircleVisibility;
};
args: Omit<RemoveCircle["data"]["args"], "proposerId">;
}

interface CreateSurvey {
type: ProposalsTypes.SURVEY;
args: Omit<
Survey["data"]["args"],
"proposerId" | "circleVisibilityByCommon"
> & {
circleVisibility?: CircleVisibility;
};
args: Omit<Survey["data"]["args"], "proposerId">;
}

interface CreateDeleteCommon {
type: ProposalsTypes.DELETE_COMMON;
args: Omit<
DeleteCommon["data"]["args"],
"proposerId" | "circleVisibilityByCommon"
> & {
circleVisibility?: CircleVisibility;
};
args: Omit<DeleteCommon["data"]["args"], "proposerId">;
}

interface Request<P, R> {
Expand Down
7 changes: 2 additions & 5 deletions src/pages/common/components/ChatComponent/ChatComponent.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -205,12 +205,9 @@ export default function ChatComponent({

useEffect(() => {
if (commonId && !isChatChannel) {
fetchDiscussionUsers(
commonId,
discussion?.circleVisibilityByCommon?.[commonId],
);
fetchDiscussionUsers(commonId, discussion?.circleVisibility);
}
}, [commonId, discussion?.circleVisibilityByCommon]);
}, [commonId, discussion?.circleVisibility]);

useEffect(() => {
if (chatChannel?.id) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -250,10 +250,7 @@ const DiscussionFeedCard = forwardRef<FeedItemRef, DiscussionFeedCardProps>(
}

const circleVisibility = governanceCircles
? getVisibilityString(
governanceCircles,
discussion?.circleVisibilityByCommon?.[commonId],
)
? getVisibilityString(governanceCircles, discussion?.circleVisibility)
: undefined;

return (
Expand Down
2 changes: 1 addition & 1 deletion src/shared/constants/dynamicLink.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { REACT_APP_ENV } from "./shared";

export const DYNAMIC_LINK_URI_PREFIX =
REACT_APP_ENV === Environment.Production
? "https://app.common.io"
? "https://link.common.io"
: "https://staging.common.io";

export enum DynamicLinkType {
Expand Down
9 changes: 5 additions & 4 deletions src/shared/constants/files.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
export const FILES_ACCEPTED_EXTENSIONS =
".pdf, .doc, .docx, .xls, .xlsx, .ppt, .pptx, .txt, .rtf, .odt, .ods, .odp, .pages, .numbers, .key, .jpg, .jpeg, .png, .gif, .tiff, .bmp, .webp, .mp4, .avi, .mov, .mkv, .mpeg, .mp3, .aac, .flac, .wav, .ogg, .zip, .rar, .7z, .tar, .gz, .apk, .epub, .vcf, .xml, .csv, .json, .docm, .dot, .dotm, .dotx, .fdf, .fodp, .fods, .fodt, .pot, .potm, .potx, .ppa, .ppam, .pps, .ppsm, .ppsx, .pptm, .sldx, .xlm, .xlsb, .xlsm, .xlt, .xltm, .xltx, .xps, .mobi, .azw, .azw3, .prc, .svg, .ico, .jp2, .3gp, .3g2, .flv, .m4v, .mk3d, .mks, .mpg, .mpeg2, .mpeg4, .mts, .vob, .wmv, .m4a, .opus, .wma, .cbr, .cbz, .tgz, .apng, .m4b, .m4p, .m4r, .webm, .sh, .py, .java, .cpp, .cs, .js, .html, .css, .php, .rb, .pl, .sql";
export const IMAGE_EXTENSIONS = ".jpg, .jpeg, .png, .gif, .tiff, .bmp, .webp, .svg, .ico, .jp2, .apng";
export const IMAGE_EXTENSIONS =
".jpg, .jpeg, .png, .gif, .tiff, .bmp, .webp, .svg, .ico, .jp2, .apng";

export const MAX_IMAGE_UPLOAD_SIZE = 6291456;

Expand All @@ -9,10 +10,10 @@ export const MAX_IMAGE_UPLOAD_SIZE_ERROR = `Heads up! Your image exceeds the ${M

export const getFileExtension = (fileName: string): string => {
return fileName.split(".").pop() ?? "";
}
};

export const isImageFile = (fileName: string): boolean => {
export const isImageFile = (fileName: string): boolean => {
const extension = getFileExtension(fileName);

return IMAGE_EXTENSIONS.includes(extension);
}
};
23 changes: 15 additions & 8 deletions src/shared/hooks/useImageSizeCheck.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
import { useCallback } from "react";
import {
isImageFile,
MAX_IMAGE_UPLOAD_SIZE,
MAX_IMAGE_UPLOAD_SIZE_ERROR,
} from "@/shared/constants";
import { useNotification } from "@/shared/hooks";
import { isImageFile, MAX_IMAGE_UPLOAD_SIZE, MAX_IMAGE_UPLOAD_SIZE_ERROR } from "@/shared/constants";

interface Return {
checkImageSize: (fileName: string, fileSize: number) => boolean;
Expand All @@ -9,14 +13,17 @@ interface Return {
const useImageSizeCheck = (): Return => {
const { notify } = useNotification();

const checkImageSize = useCallback((fileName: string, fileSize: number): boolean => {
if (isImageFile(fileName) && fileSize > MAX_IMAGE_UPLOAD_SIZE) {
notify(MAX_IMAGE_UPLOAD_SIZE_ERROR);
return false;
}
const checkImageSize = useCallback(
(fileName: string, fileSize: number): boolean => {
if (isImageFile(fileName) && fileSize > MAX_IMAGE_UPLOAD_SIZE) {
notify(MAX_IMAGE_UPLOAD_SIZE_ERROR);
return false;
}

return true
}, [notify]);
return true;
},
[notify],
);

return { checkImageSize };
};
Expand Down
2 changes: 1 addition & 1 deletion src/shared/models/Discussion.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ export interface Discussion extends BaseEntity, SoftDeleteEntity {
* If array is empty, everyone in common can view.
* If discussion is attached to a proposal, this field will be not exist.
*/
circleVisibilityByCommon?: Record<string, string[]>;
circleVisibility?: string[];
}

export interface DiscussionWithOwnerInfo extends Discussion {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ export interface BasicArgsProposal {

links: CommonLink[];

circleVisibilityByCommon?: Record<string, string[]> | null;
circleVisibility?: string[] | null;
}

export interface ProposalImage {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import React, { ChangeEventHandler, FC } from "react";
import { UploadIcon } from "@/shared/icons";
import { useImageSizeCheck } from "@/shared/hooks";
import { UploadIcon } from "@/shared/icons";
import styles from "./Trigger.module.scss";

const ACCEPTED_EXTENSIONS = "image/*";
Expand Down

0 comments on commit 25f8737

Please sign in to comment.