From 57ddff1d323fe25ae369280e11e83702c42e3912 Mon Sep 17 00:00:00 2001 From: juniusfree <8164667+juniusfree@users.noreply.github.com> Date: Sat, 24 Feb 2024 09:35:33 +0800 Subject: [PATCH 01/43] Add path --- wondrous-bot-admin/src/App.tsx | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/wondrous-bot-admin/src/App.tsx b/wondrous-bot-admin/src/App.tsx index 8b83a8d12..3c3340576 100644 --- a/wondrous-bot-admin/src/App.tsx +++ b/wondrous-bot-admin/src/App.tsx @@ -24,6 +24,7 @@ import { WonderWeb3Provider } from "utils/context/WonderWeb3Context"; import SettingsPage from "pages/settings"; import TeamSettingsPage from "pages/settings/team"; import BillingPage from "pages/settings/billing"; +import CustomizeBannersPage from "pages/settings/customize-banners"; import NotificationSettingsPage from "pages/settings/notification"; import WalletConnectPage from "pages/wallet/connect"; import OnboardingPage from "pages/onboarding"; @@ -119,6 +120,10 @@ const router = createBrowserRouter([ path: "/settings/nft", element: , }, + { + path: "/settings/customize-banners", + element: , + }, { path: "/", element: , From f9fe82324da6076cf30719d8d4fba1f451412bf0 Mon Sep 17 00:00:00 2001 From: juniusfree <8164667+juniusfree@users.noreply.github.com> Date: Sat, 24 Feb 2024 16:39:41 +0800 Subject: [PATCH 02/43] Add to menu --- wondrous-bot-admin/src/components/Settings/MenuSwitcher.tsx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/wondrous-bot-admin/src/components/Settings/MenuSwitcher.tsx b/wondrous-bot-admin/src/components/Settings/MenuSwitcher.tsx index edbafa6ed..a32edf575 100644 --- a/wondrous-bot-admin/src/components/Settings/MenuSwitcher.tsx +++ b/wondrous-bot-admin/src/components/Settings/MenuSwitcher.tsx @@ -12,6 +12,10 @@ const MENU_ITEMS = [ title: "General Settings", path: "/settings", }, + { + title: "Customize Banners", + path: "/settings/customize-banners", + }, { title: "Notifications", path: "/settings/notifications", From f51a7c8032d2282549c3ae4704c0d2e95eba68af Mon Sep 17 00:00:00 2001 From: juniusfree <8164667+juniusfree@users.noreply.github.com> Date: Sat, 24 Feb 2024 16:41:53 +0800 Subject: [PATCH 03/43] Implement components, static data, responsive --- .../Settings/CustomizeBanners/index.tsx | 88 +++++++++++ .../Settings/CustomizeBanners/styles.tsx | 141 ++++++++++++++++++ .../src/pages/settings/customize-banners.tsx | 14 ++ 3 files changed, 243 insertions(+) create mode 100644 wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx create mode 100644 wondrous-bot-admin/src/components/Settings/CustomizeBanners/styles.tsx create mode 100644 wondrous-bot-admin/src/pages/settings/customize-banners.tsx diff --git a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx new file mode 100644 index 000000000..1cec9413c --- /dev/null +++ b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx @@ -0,0 +1,88 @@ +import { Box, Button, Divider, Grid, Stack, Typography } from "@mui/material"; +import DeleteIcon from "components/Icons/Delete"; +import ImageUpload from "components/ImageUpload"; +import { AVATAR_EDITOR_TYPES } from "components/ImageUpload/AvatarEditor"; +import { useState } from "react"; +import { ButtonIconWrapper } from "components/Shared/styles"; +import ReplaceIcon from "components/Icons/ReplaceIcon"; +import { + CommandBannerContainer, + HeaderText, + HeaderContainer, + BannerUploadText, + BannerUploadButtonContainer, + BannerUploadTextButtonContainer, + TopImageTextButtonContainer, + TopImageText, + CommandBannerUploadContainer, + TopImageSectionContainer, + TopImageImageButtonContainer, + TopImageButtonContainer, + SectionDivider, + CustomizeBannersContainer, + BannerUploadHeader, + BannerUploadContainer, +} from "./styles"; + +const CommandBanner = () => { + const [data, setData] = useState({ profilePicture: null }); + const handleChange = (value) => setData({ profilePicture: value }); + const handleRemoveFile = () => handleChange(null); + const handleReplaceImage = () => handleChange(null); + + return ( + + + /Quests + + + + Banner + banner + + Optimal size: 640 x 140px + + + + + + + + + + + + + Top Image + + + banner + + + 400 x 400px + + + + + + + + + + + + + + ); +}; + +const CustomizeBanners = () => { + return ( + + + + + ); +}; + +export default CustomizeBanners; diff --git a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/styles.tsx b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/styles.tsx new file mode 100644 index 000000000..3416a0972 --- /dev/null +++ b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/styles.tsx @@ -0,0 +1,141 @@ +import { Divider, Grid, Typography } from "@mui/material"; +import styled from "styled-components"; + +export const CustomizeBannersContainer = styled(Grid)` + && { + display: flex; + gap: 24px; + flex-direction: column; + } + + ${({ theme }) => theme.breakpoints.up("sm")} { + && { + flex-grow: 1; + flex-direction: row; + } + } +`; + +export const CommandBannerContainer = styled(Grid)` + background-color: white; + color: #4d4d4d; + border-radius: 16px; + width: 100%; + + ${({ theme }) => theme.breakpoints.up("sm")} { + max-width: 448px; + } +`; + +export const HeaderContainer = styled(Grid)` + border-bottom: 1px solid #e0e0e0; + margin: 14px; + margin-bottom: 0; +`; + +export const HeaderText = styled(Typography)` + && { + padding-bottom: 8px; + font-size: 13px; + font-weight: 600; + } +`; + +export const CommandBannerUploadContainer = styled(Grid)` + ${({ theme }) => theme.breakpoints.up("md")} { + display: flex; + gap: 12px; + } +`; + +export const BannerUploadContainer = styled(Grid)` + padding: 14px; +`; + +export const BannerUploadHeader = styled(Typography)` + && { + font-size: 13px; + font-weight: 600; + padding-bottom: 12px; + } +`; + +export const BannerUploadTextButtonContainer = styled(Grid)` + display: flex; + justify-content: space-between; + align-items: center; + gap: 12px; + padding-top: 12px; + + ${({ theme }) => theme.breakpoints.up("md")} { + && { + flex-direction: column; + align-items: flex-start; + } + } +`; + +export const BannerUploadText = styled(Typography)` + && { + font-size: 11px; + font-weight: 500; + width: fit-content; + } +`; + +export const BannerUploadButtonContainer = styled(Grid)` + width: fit-content; + display: flex; + gap: 8px; +`; + +export const SectionDivider = styled(Divider)` + ${({ theme }) => theme.breakpoints.up("md")} { + display: none; + } +`; + +export const TopImageSectionContainer = styled(Grid)` + && { + padding: 14px; + display: flex; + flex-direction: column; + } + + ${({ theme }) => theme.breakpoints.up("md")} { + && { + flex-direction: column; + } + } +`; + +export const TopImageImageButtonContainer = styled(Grid)` + display: flex; + gap: 12px; + + ${({ theme }) => theme.breakpoints.up("md")} { + && { + flex-direction: column; + } + } +`; + +export const TopImageTextButtonContainer = styled(Grid)` + && { + display: flex; + flex-direction: column; + gap: 12px; + } +`; + +export const TopImageText = styled(Typography)` + && { + font-weight: 500; + font-size: 11px; + } +`; + +export const TopImageButtonContainer = styled(Grid)` + display: flex; + gap: 8px; +`; diff --git a/wondrous-bot-admin/src/pages/settings/customize-banners.tsx b/wondrous-bot-admin/src/pages/settings/customize-banners.tsx new file mode 100644 index 000000000..77a5a5440 --- /dev/null +++ b/wondrous-bot-admin/src/pages/settings/customize-banners.tsx @@ -0,0 +1,14 @@ +import CustomizeBanners from "components/Settings/CustomizeBanners"; +import SettingsLayout from "components/Shared/SettingsLayout"; + +const SettingsPage = () => { + return ( + <> + + + + + ); +}; + +export default SettingsPage; From aa628470a2b7c2fa00d74158bdceb8d77f905fe5 Mon Sep 17 00:00:00 2001 From: juniusfree <8164667+juniusfree@users.noreply.github.com> Date: Fri, 1 Mar 2024 16:51:50 +0800 Subject: [PATCH 04/43] Fix layout --- .../Settings/CustomizeBanners/index.tsx | 45 +++++++++++++++++-- .../Settings/CustomizeBanners/styles.tsx | 29 ++++++++---- 2 files changed, 61 insertions(+), 13 deletions(-) diff --git a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx index 1cec9413c..91e407829 100644 --- a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx +++ b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx @@ -22,9 +22,43 @@ import { CustomizeBannersContainer, BannerUploadHeader, BannerUploadContainer, + CommandsContainer, } from "./styles"; -const CommandBanner = () => { +const commandBanners = [ + { + title: "Quests", + tooltip: "Quests are a series of tasks that users can complete to earn rewards.", + }, + + { + title: "My Submissions", + tooltip: "View all of your submissions and their statuses.", + }, + { + title: "My Level", + tooltip: "View your current level and experience points.", + }, + { + title: "LeaderBoard", + tooltip: "View the top users and their levels.", + }, + { + title: "Store", + tooltip: "Purchase items with your experience points.", + }, + { + title: "My Purchases", + tooltip: "View all of your purchases.", + }, + { + title: "Onboard Me", + tooltip: "Complete the onboarding process.", + }, +]; + +const CommandBanner = ({ banner }) => { + const { title, tooltip } = banner; const [data, setData] = useState({ profilePicture: null }); const handleChange = (value) => setData({ profilePicture: value }); const handleRemoveFile = () => handleChange(null); @@ -33,7 +67,7 @@ const CommandBanner = () => { return ( - /Quests + /{title} @@ -79,8 +113,11 @@ const CommandBanner = () => { const CustomizeBanners = () => { return ( - - + + {commandBanners.map((banner, index) => ( + + ))} + ); }; diff --git a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/styles.tsx b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/styles.tsx index 3416a0972..393d55dfa 100644 --- a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/styles.tsx +++ b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/styles.tsx @@ -3,24 +3,35 @@ import styled from "styled-components"; export const CustomizeBannersContainer = styled(Grid)` && { - display: flex; - gap: 24px; - flex-direction: column; + max-width: 100%; } ${({ theme }) => theme.breakpoints.up("sm")} { && { - flex-grow: 1; - flex-direction: row; + max-width: 50%; + } + } + + ${({ theme }) => theme.breakpoints.up("md")} { + && { + max-width: 80%; } } `; +export const CommandsContainer = styled((props) => )` + && { + gap: 24px; + } +`; + export const CommandBannerContainer = styled(Grid)` - background-color: white; - color: #4d4d4d; - border-radius: 16px; - width: 100%; + && { + background-color: white; + color: #4d4d4d; + border-radius: 16px; + width: 100%; + } ${({ theme }) => theme.breakpoints.up("sm")} { max-width: 448px; From 874f4ba1dca320cdeee048a7f178891dba6290dd Mon Sep 17 00:00:00 2001 From: juniusfree <8164667+juniusfree@users.noreply.github.com> Date: Fri, 1 Mar 2024 17:15:57 +0800 Subject: [PATCH 05/43] Add tooltip --- .../Settings/CustomizeBanners/index.tsx | 13 ++++++++++++- .../Settings/CustomizeBanners/styles.tsx | 16 +++++++++++++--- 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx index 91e407829..f027df209 100644 --- a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx +++ b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx @@ -23,7 +23,11 @@ import { BannerUploadHeader, BannerUploadContainer, CommandsContainer, + HeaderContainerTooltipContent, + HeaderInfoIconContainer, } from "./styles"; +import { StyledInformationTooltip } from "components/Shared/Tooltip"; +import InformationTooltip from "components/Icons/information.svg"; const commandBanners = [ { @@ -67,7 +71,14 @@ const CommandBanner = ({ banner }) => { return ( - /{title} + + + /{title} + + information + + + diff --git a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/styles.tsx b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/styles.tsx index 393d55dfa..9027299a9 100644 --- a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/styles.tsx +++ b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/styles.tsx @@ -39,9 +39,19 @@ export const CommandBannerContainer = styled(Grid)` `; export const HeaderContainer = styled(Grid)` - border-bottom: 1px solid #e0e0e0; - margin: 14px; - margin-bottom: 0; + && { + border-bottom: 1px solid #e0e0e0; + margin: 14px; + margin-bottom: 0; + } +`; + +export const HeaderContainerTooltipContent = styled(Grid)` + && { + display: flex; + gap: 8px; + width: fit-content; + } `; export const HeaderText = styled(Typography)` From a8f7a9f451d6705b22cbe9ff94329757039ebd9f Mon Sep 17 00:00:00 2001 From: juniusfree <8164667+juniusfree@users.noreply.github.com> Date: Fri, 1 Mar 2024 17:56:53 +0800 Subject: [PATCH 06/43] Add base images --- .../banner-images/leaderboard-banner.png | Bin 0 -> 35980 bytes .../banner-images/leaderboard-circle.png | Bin 0 -> 8876 bytes .../images/banner-images/my-level-banner.png | Bin 0 -> 35048 bytes .../images/banner-images/my-level-circle.png | Bin 0 -> 15163 bytes .../banner-images/my-purchases-banner.png | Bin 0 -> 40972 bytes .../banner-images/my-purchases-circle.png | Bin 0 -> 8494 bytes .../banner-images/onboard-me-banner.png | Bin 0 -> 57105 bytes .../banner-images/onboard-me-circle.png | Bin 0 -> 8731 bytes .../images/banner-images/quest-banner.png | Bin 0 -> 29847 bytes .../images/banner-images/quest-circle.png | Bin 0 -> 4832 bytes .../images/banner-images/store-banner.png | Bin 0 -> 24795 bytes .../images/banner-images/store-circle.png | Bin 0 -> 6868 bytes .../images/banner-images/sub-banner.png | Bin 0 -> 32642 bytes .../images/banner-images/sub-circle.png | Bin 0 -> 8571 bytes .../Settings/CustomizeBanners/index.tsx | 50 +++++++++++++----- .../Settings/CustomizeBanners/styles.tsx | 29 +++++++++- 16 files changed, 64 insertions(+), 15 deletions(-) create mode 100644 wondrous-bot-admin/public/images/banner-images/leaderboard-banner.png create mode 100644 wondrous-bot-admin/public/images/banner-images/leaderboard-circle.png create mode 100644 wondrous-bot-admin/public/images/banner-images/my-level-banner.png create mode 100644 wondrous-bot-admin/public/images/banner-images/my-level-circle.png create mode 100644 wondrous-bot-admin/public/images/banner-images/my-purchases-banner.png create mode 100644 wondrous-bot-admin/public/images/banner-images/my-purchases-circle.png create mode 100644 wondrous-bot-admin/public/images/banner-images/onboard-me-banner.png create mode 100644 wondrous-bot-admin/public/images/banner-images/onboard-me-circle.png create mode 100644 wondrous-bot-admin/public/images/banner-images/quest-banner.png create mode 100644 wondrous-bot-admin/public/images/banner-images/quest-circle.png create mode 100644 wondrous-bot-admin/public/images/banner-images/store-banner.png create mode 100644 wondrous-bot-admin/public/images/banner-images/store-circle.png create mode 100644 wondrous-bot-admin/public/images/banner-images/sub-banner.png create mode 100644 wondrous-bot-admin/public/images/banner-images/sub-circle.png diff --git a/wondrous-bot-admin/public/images/banner-images/leaderboard-banner.png b/wondrous-bot-admin/public/images/banner-images/leaderboard-banner.png new file mode 100644 index 0000000000000000000000000000000000000000..e275a0daa4d9782f4be897f9c46381cf86a35ab0 GIT binary patch literal 35980 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 literal 0 HcmV?d00001 diff --git a/wondrous-bot-admin/public/images/banner-images/my-purchases-banner.png b/wondrous-bot-admin/public/images/banner-images/my-purchases-banner.png new file mode 100644 index 0000000000000000000000000000000000000000..c3256cfc62ff28ab57427c5305d32bbd176c9d2a GIT binary patch literal 40972 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π!ZlnK)*VQQa#BJoRviBp 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
    lyTj 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 Tn-MyP2R>SAx~gRe8}$DHd_ime literal 0 HcmV?d00001 diff --git a/wondrous-bot-admin/public/images/banner-images/my-purchases-circle.png b/wondrous-bot-admin/public/images/banner-images/my-purchases-circle.png new file mode 100644 index 0000000000000000000000000000000000000000..8eb363266a351f72cff0016d4db9523f940cbac6 GIT binary patch literal 8494 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 XGPURHZrur>jwp(zs-8-nk{#@S9D!FT literal 0 HcmV?d00001 diff --git a/wondrous-bot-admin/public/images/banner-images/quest-circle.png b/wondrous-bot-admin/public/images/banner-images/quest-circle.png new file mode 100644 index 0000000000000000000000000000000000000000..fafe237d73697d19036a2be8564daa930abaf4ce GIT binary patch literal 4832 zcmV<65+Ch}P)skcN4W? zz))bYj9^%2TM`8fNOEPVNiQ-F69v?Bt)i9;bU>T}3*BH%;5itBE^aG|eEUA1`0*g| z@STtUA0UgAAz z;OeFVS0h@v_-#=nFa-fKNDr0z37@0jwtViYSGSs=C4|iw1gr;yst1J45Cm)&ZA`UA z(`u69Onrg^`jOfUWgcU;y%4avdbPTwUMyKcwX&mts@4?yfN`+YBJYgc2^KhnCr4_M z=3YA?mMF$z88CfnU2w3%KCK>f_4YBYL5p3$=6@!qDM2%YHqcu!4O(mhHoq=&s8|6I zv!F#jU>IWslnR=fshytswpgJEi)_Fa@5r|5qu3EA}c}ZH;g7Aw>+Zg(Q zp=w1`M58Zd+lJm71{d|L$9fR%qn)QL#xL@oWsnmz?mfcmnWIa)55~ zP3g%ao>Z{<`57D76%Tu6g5R~TEBzeH~fYql+a|949 zIWNxmaJ5C`aaS!#9}_@8xjpIOS_P}0qp?Z=0mhRaJV!t-aV=n~a^YTF5PU9=$6N^* z-|UVs?t<{hxplUO<6|(rHAMA-kST9fX~gMMsvNIiXbmBxQcvw1vg9a71BTWR!b}y0 ztkbQcV=ZFTTEi#5Ez_?*+N4i@wW&S+{L>PFv!4D+iVl1=MTfqXp+mzN`uaE16aeMK zAPqUS%VU5X!mS}iAY32*qDVi!o>#%TuLTRdb5I5C^!ZCP`bv&`#J3>k*Rmt0Q#n$> zqOhR+_%|h5_}d&kxVJ{&uV+;yd-dXsuR*I-Y0Qb6|2Yz{g?0IHm|H`xTL1Ls*|v(6 zN~LIGVuCW645ia)g3e}VXQ@~$wtei#;VcauJW4O9_s<;Yy@vbclQMn$>rMLQgEjiE z58MAcr_W8(xgYp*>7WWmaq74jBb#gotUj^f`0R^UZogkpm8*GV0|)EMl`AwpKCV56 z?sB;tEiE;#U*uqY@5~Gx8P1Xwj~*8qYaYi;Ig0mI3*EUaMZZ3+LzPmDA4Ly6wGxo1=wynnNHTE1B&H4_njp+QBs; zZVi9zyl?{h8I3G;L=y zu;qZMHLvNgRxkdCy8V-8YrVRPP5(x5^(vK0+T)=^8Ewqv7OrG3)W>s=KP{<$vjX|R zRu!`pFl|ve#P>?xSX*vXFK!JnOK2PiOgDAj{c+K`mH=-QSI8GOs+gsK)fbgRivy

    lX*fTo6Qm! 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%0Ddnz%N(rhVgC?i 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 F{{fYUiJbrd literal 0 HcmV?d00001 diff --git a/wondrous-bot-admin/public/images/banner-images/store-circle.png b/wondrous-bot-admin/public/images/banner-images/store-circle.png new file mode 100644 index 0000000000000000000000000000000000000000..1967b31ef10f0fa19e356f66c4f14759526394a4 GIT binary patch literal 6868 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%0Apz#%Z0 zEY%esXsT~Qp$k(=5vT$N0R>fiMy}yUzgtPSjUM6GOUyww&%a)x>FwI5#BCjuO+ZQPcmA@#tKHOs4GJDflSu;Sr4Rl+lzS5J6* z6`9Bo5G559DA2HENlw&r!Jh{xM-)Rf!?ivssB+U>0~WP&V|TWD@Adjy|vH5 zBD-KFA8U`ZnQB17yk)xk#j6jq^?#fegS&@8`+GT{89~xi�u;4c)~Yn&Ul+7F^tb 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 literal 0 HcmV?d00001 diff --git a/wondrous-bot-admin/public/images/banner-images/sub-circle.png b/wondrous-bot-admin/public/images/banner-images/sub-circle.png new file mode 100644 index 0000000000000000000000000000000000000000..c1dd8c39b6270d8f1ab190fa275f7e98ffcae2fd GIT binary patch literal 8571 zcmV->A%xzEP)Y~R`6cYM$F?~Z5Y z&fGimo8Qcwk92!)9M`dZ=R4<|@9+H1k4O*%K@bE%5ClOmg+qeXOfR~F^gay+{^f17 zHaq65kzg$%upF5FwL7$H7Y)^FG~^QPb6xeCXi&W#bQ~JO=ip-rz9gytZ?*ORt*SS5 zt*IXPn0kG!*`(Et4O*SO&sinGC?c>7@r1OSMrs4Jueqt79jZe_(+E1HGNJ>mO3n@O1igqqFXn-2c4O%&Ix6>dY z6+~ct@YoA(9fEQrNCN?!&7P<>!`Sb_M>iq zvnp+zp%PL$fqDIbH9D7cyN8f3sLxayKXv?0=K__8(g@6pTAMVZexRcy6qd53jinIS zV=ubn>h5<=(!p}TT_I(#^$RU9iCX2R4AHEx0+U*+8X%h0Hff@$d(vuDK$N&2E#W<<0#c|5hIOsYO;u~jf^k(T+yZrB1a@lC9ib-8OVp}1NEuaKHdYjo z6(U7E`GPy;HYFt#wo=C3n{*Y|1Qh`51?J`64xJVYUg$tw6Gf=YtW6PN!K*vf8TIlo z2|@_ib9QU1F0*pNv6TXAnHlry

    Evcb1j;F=1m}W}U!V9q>|b35l@P{IE)3A}*mH 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 BEjj=I literal 0 HcmV?d00001 diff --git a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx index f027df209..bae7badd1 100644 --- a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx +++ b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx @@ -24,7 +24,8 @@ import { BannerUploadContainer, CommandsContainer, HeaderContainerTooltipContent, - HeaderInfoIconContainer, + BannerUploadImageContainer, + TopImageContainer, } from "./styles"; import { StyledInformationTooltip } from "components/Shared/Tooltip"; import InformationTooltip from "components/Icons/information.svg"; @@ -33,40 +34,59 @@ const commandBanners = [ { title: "Quests", tooltip: "Quests are a series of tasks that users can complete to earn rewards.", + bannerImage: "/images/banner-images/quest-banner.png", + topImage: "/images/banner-images/quest-circle.png", }, { title: "My Submissions", tooltip: "View all of your submissions and their statuses.", + bannerImage: "/images/banner-images/sub-banner.png", + topImage: "/images/banner-images/sub-circle.png", }, { title: "My Level", tooltip: "View your current level and experience points.", + bannerImage: "/images/banner-images/my-level-banner.png", + topImage: "/images/banner-images/my-level-circle.png", }, { - title: "LeaderBoard", + title: "Leaderboard", tooltip: "View the top users and their levels.", + bannerImage: "/images/banner-images/leaderboard-banner.png", + topImage: "/images/banner-images/leaderboard-circle.png", }, { title: "Store", tooltip: "Purchase items with your experience points.", + bannerImage: "/images/banner-images/store-banner.png", + topImage: "/images/banner-images/store-circle.png", }, { title: "My Purchases", tooltip: "View all of your purchases.", + bannerImage: "/images/banner-images/my-purchases-banner.png", + topImage: "/images/banner-images/my-purchases-circle.png", }, { title: "Onboard Me", tooltip: "Complete the onboarding process.", + bannerImage: "/images/banner-images/onboard-me-banner.png", + topImage: "/images/banner-images/onboard-me-circle.png", }, ]; const CommandBanner = ({ banner }) => { const { title, tooltip } = banner; - const [data, setData] = useState({ profilePicture: null }); - const handleChange = (value) => setData({ profilePicture: value }); - const handleRemoveFile = () => handleChange(null); - const handleReplaceImage = () => handleChange(null); + + const [bannerImage, setBannerImage] = useState(banner.bannerImage); + + const handleReplaceBannerImage = (file) => null; + const handleDeleteBannerImage = () => setBannerImage(banner.bannerImage); + + const [topImage, setTopImage] = useState(banner.topImage); + const handleReplaceTopImage = (file) => null; + const handleDeleteTopImage = () => setTopImage(banner.topImage); return ( @@ -83,14 +103,16 @@ const CommandBanner = ({ banner }) => { Banner - banner + + {title} + Optimal size: 640 x 140px - + - + @@ -100,16 +122,16 @@ const CommandBanner = ({ banner }) => { Top Image - - banner - + + {topImage} + 400 x 400px - + - + diff --git a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/styles.tsx b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/styles.tsx index 9027299a9..a58d31e2c 100644 --- a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/styles.tsx +++ b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/styles.tsx @@ -65,7 +65,6 @@ export const HeaderText = styled(Typography)` export const CommandBannerUploadContainer = styled(Grid)` ${({ theme }) => theme.breakpoints.up("md")} { display: flex; - gap: 12px; } `; @@ -81,6 +80,20 @@ export const BannerUploadHeader = styled(Typography)` } `; +export const BannerUploadImageContainer = styled(Grid)` + && { + height: 70px; + width: 320px; + border-radius: 6px; + overflow: hidden; + } + && > img { + height: 100%; + width: 100%; + object-fit: cover; + } +`; + export const BannerUploadTextButtonContainer = styled(Grid)` display: flex; justify-content: space-between; @@ -141,6 +154,20 @@ export const TopImageImageButtonContainer = styled(Grid)` } `; +export const TopImageContainer = styled(Grid)` + && { + height: 70px; + width: 70px; + border-radius: 1000px; + overflow: hidden; + } + && > img { + height: 100%; + width: 100%; + object-fit: cover; + } +`; + export const TopImageTextButtonContainer = styled(Grid)` && { display: flex; From 83c38484e673567dd475d5528c64374b37781123 Mon Sep 17 00:00:00 2001 From: juniusfree <8164667+juniusfree@users.noreply.github.com> Date: Fri, 1 Mar 2024 19:10:06 +0800 Subject: [PATCH 07/43] Add update_org_banner mutation --- .../Settings/CustomizeBanners/index.tsx | 47 ++++++++++++++++--- .../src/graphql/mutations/orgAsset.ts | 9 ++++ 2 files changed, 49 insertions(+), 7 deletions(-) create mode 100644 wondrous-bot-admin/src/graphql/mutations/orgAsset.ts diff --git a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx index bae7badd1..456abc6eb 100644 --- a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx +++ b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx @@ -2,7 +2,7 @@ import { Box, Button, Divider, Grid, Stack, Typography } from "@mui/material"; import DeleteIcon from "components/Icons/Delete"; import ImageUpload from "components/ImageUpload"; import { AVATAR_EDITOR_TYPES } from "components/ImageUpload/AvatarEditor"; -import { useState } from "react"; +import { useContext, useState } from "react"; import { ButtonIconWrapper } from "components/Shared/styles"; import ReplaceIcon from "components/Icons/ReplaceIcon"; import { @@ -29,6 +29,9 @@ import { } from "./styles"; import { StyledInformationTooltip } from "components/Shared/Tooltip"; import InformationTooltip from "components/Icons/information.svg"; +import { UPDATE_ORG_BANNER } from "graphql/mutations/orgAsset"; +import { useMutation } from "@apollo/client"; +import GlobalContext from "utils/context/GlobalContext"; const commandBanners = [ { @@ -36,6 +39,7 @@ const commandBanners = [ tooltip: "Quests are a series of tasks that users can complete to earn rewards.", bannerImage: "/images/banner-images/quest-banner.png", topImage: "/images/banner-images/quest-circle.png", + command: "quests", }, { @@ -43,49 +47,77 @@ const commandBanners = [ tooltip: "View all of your submissions and their statuses.", bannerImage: "/images/banner-images/sub-banner.png", topImage: "/images/banner-images/sub-circle.png", + command: "my-submissions", }, { title: "My Level", tooltip: "View your current level and experience points.", bannerImage: "/images/banner-images/my-level-banner.png", topImage: "/images/banner-images/my-level-circle.png", + command: "my-level", }, { title: "Leaderboard", tooltip: "View the top users and their levels.", bannerImage: "/images/banner-images/leaderboard-banner.png", topImage: "/images/banner-images/leaderboard-circle.png", + command: "leaderboard", }, { title: "Store", tooltip: "Purchase items with your experience points.", bannerImage: "/images/banner-images/store-banner.png", topImage: "/images/banner-images/store-circle.png", + command: "store", }, { title: "My Purchases", tooltip: "View all of your purchases.", bannerImage: "/images/banner-images/my-purchases-banner.png", topImage: "/images/banner-images/my-purchases-circle.png", + command: "my-purchases", }, { title: "Onboard Me", tooltip: "Complete the onboarding process.", bannerImage: "/images/banner-images/onboard-me-banner.png", topImage: "/images/banner-images/onboard-me-circle.png", + command: "onboard-me", }, ]; -const CommandBanner = ({ banner }) => { - const { title, tooltip } = banner; +const CommandBanner = ({ banner, activeOrg }) => { + const { title, tooltip, command } = banner; + const [updateBanner, { loading }] = useMutation(UPDATE_ORG_BANNER); const [bannerImage, setBannerImage] = useState(banner.bannerImage); - - const handleReplaceBannerImage = (file) => null; + const handleReplaceBannerImage = async (file) => { + await updateBanner({ + variables: { + orgId: activeOrg?.id, + input: { + command, + url: "", + position: "banner", + }, + }, + }); + }; const handleDeleteBannerImage = () => setBannerImage(banner.bannerImage); const [topImage, setTopImage] = useState(banner.topImage); - const handleReplaceTopImage = (file) => null; + const handleReplaceTopImage = async (file) => { + await updateBanner({ + variables: { + orgId: activeOrg?.id, + input: { + command, + url: "", + position: "top-image", + }, + }, + }); + }; const handleDeleteTopImage = () => setTopImage(banner.topImage); return ( @@ -144,11 +176,12 @@ const CommandBanner = ({ banner }) => { }; const CustomizeBanners = () => { + const { activeOrg } = useContext(GlobalContext); return ( {commandBanners.map((banner, index) => ( - + ))} diff --git a/wondrous-bot-admin/src/graphql/mutations/orgAsset.ts b/wondrous-bot-admin/src/graphql/mutations/orgAsset.ts new file mode 100644 index 000000000..f5995837b --- /dev/null +++ b/wondrous-bot-admin/src/graphql/mutations/orgAsset.ts @@ -0,0 +1,9 @@ +import { gql } from "@apollo/client"; + +export const UPDATE_ORG_BANNER = gql` + mutation updateOrgBanner($orgId: ID!, $input: OrgBannerInput) { + updateOrgBanner(orgId: $orgId, input: $input) { + success + } + } +`; From 090985c0a2b3156c260dcdd1fa94392b164e8cb4 Mon Sep 17 00:00:00 2001 From: juniusfree <8164667+juniusfree@users.noreply.github.com> Date: Fri, 1 Mar 2024 19:15:30 +0800 Subject: [PATCH 08/43] Add delete org banner --- .../Settings/CustomizeBanners/index.tsx | 31 ++++++++++++++++--- .../src/graphql/mutations/orgAsset.ts | 8 +++++ 2 files changed, 35 insertions(+), 4 deletions(-) diff --git a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx index 456abc6eb..8e8601afa 100644 --- a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx +++ b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx @@ -29,7 +29,7 @@ import { } from "./styles"; import { StyledInformationTooltip } from "components/Shared/Tooltip"; import InformationTooltip from "components/Icons/information.svg"; -import { UPDATE_ORG_BANNER } from "graphql/mutations/orgAsset"; +import { DELETE_ORG_BANNER, UPDATE_ORG_BANNER } from "graphql/mutations/orgAsset"; import { useMutation } from "@apollo/client"; import GlobalContext from "utils/context/GlobalContext"; @@ -88,7 +88,8 @@ const commandBanners = [ const CommandBanner = ({ banner, activeOrg }) => { const { title, tooltip, command } = banner; - const [updateBanner, { loading }] = useMutation(UPDATE_ORG_BANNER); + const [updateBanner] = useMutation(UPDATE_ORG_BANNER); + const [deleteBanner] = useMutation(DELETE_ORG_BANNER); const [bannerImage, setBannerImage] = useState(banner.bannerImage); const handleReplaceBannerImage = async (file) => { @@ -99,11 +100,22 @@ const CommandBanner = ({ banner, activeOrg }) => { command, url: "", position: "banner", + oldAssetId: "", }, }, }); }; - const handleDeleteBannerImage = () => setBannerImage(banner.bannerImage); + const handleDeleteBannerImage = async () => { + await deleteBanner({ + variables: { + orgId: activeOrg?.id, + input: { + assetId: "", + }, + }, + }); + setBannerImage(banner.bannerImage); + }; const [topImage, setTopImage] = useState(banner.topImage); const handleReplaceTopImage = async (file) => { @@ -114,11 +126,22 @@ const CommandBanner = ({ banner, activeOrg }) => { command, url: "", position: "top-image", + oldAssetId: "", + }, + }, + }); + }; + const handleDeleteTopImage = async () => { + await deleteBanner({ + variables: { + orgId: activeOrg?.id, + input: { + assetId: "", }, }, }); + setTopImage(banner.topImage); }; - const handleDeleteTopImage = () => setTopImage(banner.topImage); return ( diff --git a/wondrous-bot-admin/src/graphql/mutations/orgAsset.ts b/wondrous-bot-admin/src/graphql/mutations/orgAsset.ts index f5995837b..8c244e0fd 100644 --- a/wondrous-bot-admin/src/graphql/mutations/orgAsset.ts +++ b/wondrous-bot-admin/src/graphql/mutations/orgAsset.ts @@ -7,3 +7,11 @@ export const UPDATE_ORG_BANNER = gql` } } `; + +export const DELETE_ORG_BANNER = gql` + mutation deleteOrgBanner($orgId: ID!, $input: OrgBannerDeleteInput) { + deleteOrgBanner(orgId: $orgId, input: $input) { + success + } + } +`; From f7c5c75ee07acc1290d2c10459d1c1d80732bb37 Mon Sep 17 00:00:00 2001 From: juniusfree <8164667+juniusfree@users.noreply.github.com> Date: Fri, 1 Mar 2024 20:43:06 +0800 Subject: [PATCH 09/43] Implement file upload and delete --- .../Settings/CustomizeBanners/index.tsx | 83 +++++++++++-------- .../Settings/CustomizeBanners/styles.tsx | 21 +++++ 2 files changed, 69 insertions(+), 35 deletions(-) diff --git a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx index 8e8601afa..076343eae 100644 --- a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx +++ b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx @@ -2,7 +2,7 @@ import { Box, Button, Divider, Grid, Stack, Typography } from "@mui/material"; import DeleteIcon from "components/Icons/Delete"; import ImageUpload from "components/ImageUpload"; import { AVATAR_EDITOR_TYPES } from "components/ImageUpload/AvatarEditor"; -import { useContext, useState } from "react"; +import { useContext, useRef, useState } from "react"; import { ButtonIconWrapper } from "components/Shared/styles"; import ReplaceIcon from "components/Icons/ReplaceIcon"; import { @@ -26,12 +26,14 @@ import { HeaderContainerTooltipContent, BannerUploadImageContainer, TopImageContainer, + ButtonInputContainer, } from "./styles"; import { StyledInformationTooltip } from "components/Shared/Tooltip"; import InformationTooltip from "components/Icons/information.svg"; import { DELETE_ORG_BANNER, UPDATE_ORG_BANNER } from "graphql/mutations/orgAsset"; import { useMutation } from "@apollo/client"; import GlobalContext from "utils/context/GlobalContext"; +import { transformAndUploadMedia } from "utils/media"; const commandBanners = [ { @@ -90,57 +92,62 @@ const CommandBanner = ({ banner, activeOrg }) => { const { title, tooltip, command } = banner; const [updateBanner] = useMutation(UPDATE_ORG_BANNER); const [deleteBanner] = useMutation(DELETE_ORG_BANNER); + const imageInputField = useRef(null); - const [bannerImage, setBannerImage] = useState(banner.bannerImage); - const handleReplaceBannerImage = async (file) => { - await updateBanner({ + const handleReplaceImage = async ({ file, position, callbackSetState }) => { + const image = file.target.files[0]; + const { filename } = await transformAndUploadMedia({ + file: image, + }); + const response = await updateBanner({ variables: { orgId: activeOrg?.id, input: { command, - url: "", - position: "banner", + url: filename, + position, oldAssetId: "", }, }, }); + if (response?.data?.updateOrgBanner?.success) { + callbackSetState(URL.createObjectURL(image)); + imageInputField.current.value = ""; + } }; - const handleDeleteBannerImage = async () => { - await deleteBanner({ + + const handleDeleteImage = async ({ callback }) => { + const response = await deleteBanner({ variables: { orgId: activeOrg?.id, input: { - assetId: "", + oldAssetId: "", }, }, }); - setBannerImage(banner.bannerImage); + if (response?.data?.deleteOrgBanner?.success) { + callback(); + } + }; + + const [bannerImage, setBannerImage] = useState(banner.bannerImage); + const handleReplaceBannerImage = async (file) => { + handleReplaceImage({ file, position: "banner", callbackSetState: setBannerImage }); + }; + const handleDeleteBannerImage = async () => { + handleDeleteImage({ + callback: () => setBannerImage(banner.bannerImage), + }); }; const [topImage, setTopImage] = useState(banner.topImage); const handleReplaceTopImage = async (file) => { - await updateBanner({ - variables: { - orgId: activeOrg?.id, - input: { - command, - url: "", - position: "top-image", - oldAssetId: "", - }, - }, - }); + handleReplaceImage({ file, position: "topImage", callbackSetState: setTopImage }); }; const handleDeleteTopImage = async () => { - await deleteBanner({ - variables: { - orgId: activeOrg?.id, - input: { - assetId: "", - }, - }, + handleDeleteImage({ + callback: () => setTopImage(banner.topImage), }); - setTopImage(banner.topImage); }; return ( @@ -164,9 +171,12 @@ const CommandBanner = ({ banner, activeOrg }) => { Optimal size: 640 x 140px - - - + + + + + + @@ -183,9 +193,12 @@ const CommandBanner = ({ banner, activeOrg }) => { 400 x 400px - - - + + + + + + diff --git a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/styles.tsx b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/styles.tsx index a58d31e2c..d9b8d268b 100644 --- a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/styles.tsx +++ b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/styles.tsx @@ -123,6 +123,27 @@ export const BannerUploadButtonContainer = styled(Grid)` gap: 8px; `; +export const ButtonInputContainer = styled(Grid)` + && { + position: relative; + + &:hover { + opacity: 0.8; + } + + & > input { + z-index: 1; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + overflow: hidden; + opacity: 0; + } + } +`; + export const SectionDivider = styled(Divider)` ${({ theme }) => theme.breakpoints.up("md")} { display: none; From 587a621fd3a18b7a701eca0cd44dccf496878dad Mon Sep 17 00:00:00 2001 From: juniusfree <8164667+juniusfree@users.noreply.github.com> Date: Fri, 1 Mar 2024 20:53:13 +0800 Subject: [PATCH 10/43] Add placeholder for query --- .../components/Settings/CustomizeBanners/index.tsx | 11 ++++++++--- wondrous-bot-admin/src/graphql/fragments/orgAsset.ts | 10 ++++++++++ wondrous-bot-admin/src/graphql/queries/orgAsset.ts | 11 +++++++++++ 3 files changed, 29 insertions(+), 3 deletions(-) create mode 100644 wondrous-bot-admin/src/graphql/fragments/orgAsset.ts create mode 100644 wondrous-bot-admin/src/graphql/queries/orgAsset.ts diff --git a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx index 076343eae..6164c6f18 100644 --- a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx +++ b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx @@ -1,7 +1,5 @@ import { Box, Button, Divider, Grid, Stack, Typography } from "@mui/material"; import DeleteIcon from "components/Icons/Delete"; -import ImageUpload from "components/ImageUpload"; -import { AVATAR_EDITOR_TYPES } from "components/ImageUpload/AvatarEditor"; import { useContext, useRef, useState } from "react"; import { ButtonIconWrapper } from "components/Shared/styles"; import ReplaceIcon from "components/Icons/ReplaceIcon"; @@ -31,9 +29,10 @@ import { import { StyledInformationTooltip } from "components/Shared/Tooltip"; import InformationTooltip from "components/Icons/information.svg"; import { DELETE_ORG_BANNER, UPDATE_ORG_BANNER } from "graphql/mutations/orgAsset"; -import { useMutation } from "@apollo/client"; +import { useMutation, useQuery } from "@apollo/client"; import GlobalContext from "utils/context/GlobalContext"; import { transformAndUploadMedia } from "utils/media"; +import { GET_ORG_BANNERS } from "graphql/queries/orgAsset"; const commandBanners = [ { @@ -213,6 +212,12 @@ const CommandBanner = ({ banner, activeOrg }) => { const CustomizeBanners = () => { const { activeOrg } = useContext(GlobalContext); + const { data } = useQuery(GET_ORG_BANNERS, { + //TODO: update query when implemented in backend + variables: { + orgId: activeOrg?.id, + }, + }); return ( diff --git a/wondrous-bot-admin/src/graphql/fragments/orgAsset.ts b/wondrous-bot-admin/src/graphql/fragments/orgAsset.ts new file mode 100644 index 000000000..ea26f17e7 --- /dev/null +++ b/wondrous-bot-admin/src/graphql/fragments/orgAsset.ts @@ -0,0 +1,10 @@ +import { gql } from "@apollo/client"; + +export const OrgBannersFragment = gql` + fragment OrgBannersFragment on OrgBanner { + id + url + command + position + } +`; diff --git a/wondrous-bot-admin/src/graphql/queries/orgAsset.ts b/wondrous-bot-admin/src/graphql/queries/orgAsset.ts new file mode 100644 index 000000000..600d8565b --- /dev/null +++ b/wondrous-bot-admin/src/graphql/queries/orgAsset.ts @@ -0,0 +1,11 @@ +import { gql } from "@apollo/client"; +import { OrgBannersFragment } from "graphql/fragments/orgAsset"; + +export const GET_ORG_BANNERS = gql` + query getOrgBanners($orgId: ID!) { + getOrgBanners(orgId: $orgId) { + ...OrgBannerFragment + } + } + ${OrgBannersFragment} +`; From 6cf274826a42f2409370646212a6f9fb8f02f505 Mon Sep 17 00:00:00 2001 From: juniusfree <8164667+juniusfree@users.noreply.github.com> Date: Fri, 1 Mar 2024 21:14:58 +0800 Subject: [PATCH 11/43] Clear input field on delete --- .../src/components/Settings/CustomizeBanners/index.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx index 6164c6f18..8c57b5461 100644 --- a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx +++ b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx @@ -126,6 +126,7 @@ const CommandBanner = ({ banner, activeOrg }) => { }); if (response?.data?.deleteOrgBanner?.success) { callback(); + imageInputField.current.value = ""; } }; From 4e6bd13c3c3e70b06f86edfef35b76c1e10755dd Mon Sep 17 00:00:00 2001 From: juniusfree <8164667+juniusfree@users.noreply.github.com> Date: Sat, 2 Mar 2024 18:26:51 +0800 Subject: [PATCH 12/43] Update OrgBannerFragment --- wondrous-bot-admin/src/graphql/fragments/orgAsset.ts | 11 +++++++---- wondrous-bot-admin/src/graphql/queries/orgAsset.ts | 4 ++-- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/wondrous-bot-admin/src/graphql/fragments/orgAsset.ts b/wondrous-bot-admin/src/graphql/fragments/orgAsset.ts index ea26f17e7..7f63269cb 100644 --- a/wondrous-bot-admin/src/graphql/fragments/orgAsset.ts +++ b/wondrous-bot-admin/src/graphql/fragments/orgAsset.ts @@ -1,10 +1,13 @@ import { gql } from "@apollo/client"; -export const OrgBannersFragment = gql` - fragment OrgBannersFragment on OrgBanner { +export const OrgBannerFragment = gql` + fragment OrgBannerFragment on OrgBanner { id + orgId url - command - position + additionalData { + command + position + } } `; diff --git a/wondrous-bot-admin/src/graphql/queries/orgAsset.ts b/wondrous-bot-admin/src/graphql/queries/orgAsset.ts index 600d8565b..fa51ca743 100644 --- a/wondrous-bot-admin/src/graphql/queries/orgAsset.ts +++ b/wondrous-bot-admin/src/graphql/queries/orgAsset.ts @@ -1,5 +1,5 @@ import { gql } from "@apollo/client"; -import { OrgBannersFragment } from "graphql/fragments/orgAsset"; +import { OrgBannerFragment } from "graphql/fragments/orgAsset"; export const GET_ORG_BANNERS = gql` query getOrgBanners($orgId: ID!) { @@ -7,5 +7,5 @@ export const GET_ORG_BANNERS = gql` ...OrgBannerFragment } } - ${OrgBannersFragment} + ${OrgBannerFragment} `; From f97dd30a844bfd5c5b547cfbeae3e2fd72e27e12 Mon Sep 17 00:00:00 2001 From: juniusfree <8164667+juniusfree@users.noreply.github.com> Date: Sat, 2 Mar 2024 18:27:08 +0800 Subject: [PATCH 13/43] Integrate updated apis --- .../Settings/CustomizeBanners/index.tsx | 113 +++++++++++++----- 1 file changed, 85 insertions(+), 28 deletions(-) diff --git a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx index 8c57b5461..f4d076a89 100644 --- a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx +++ b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx @@ -33,6 +33,13 @@ import { useMutation, useQuery } from "@apollo/client"; import GlobalContext from "utils/context/GlobalContext"; import { transformAndUploadMedia } from "utils/media"; import { GET_ORG_BANNERS } from "graphql/queries/orgAsset"; +import groupBy from "lodash/groupBy"; +import SafeImage from "components/SafeImage"; + +const BANNER_POSITION = { + topImage: "topImage", + banner: "banner", +}; const commandBanners = [ { @@ -87,66 +94,81 @@ const commandBanners = [ }, ]; -const CommandBanner = ({ banner, activeOrg }) => { - const { title, tooltip, command } = banner; +const CommandBanner = ({ baseBanner, activeOrg, customBanner }) => { + const { title, tooltip, command } = baseBanner; const [updateBanner] = useMutation(UPDATE_ORG_BANNER); const [deleteBanner] = useMutation(DELETE_ORG_BANNER); const imageInputField = useRef(null); - const handleReplaceImage = async ({ file, position, callbackSetState }) => { + const customBannerImage = customBanner?.find((banner) => banner?.additionalData?.position === BANNER_POSITION.banner); + const customTopImage = customBanner?.find((banner) => banner?.additionalData?.position === BANNER_POSITION.topImage); + const customBannerImageUrl = customBannerImage?.url; + const customTopImageUrl = customTopImage?.url; + + const handleReplaceImage = async ({ file, position, oldAssetId }) => { const image = file.target.files[0]; const { filename } = await transformAndUploadMedia({ file: image, }); - const response = await updateBanner({ + await updateBanner({ variables: { orgId: activeOrg?.id, input: { command, url: filename, position, - oldAssetId: "", + oldAssetId, }, }, + refetchQueries: [GET_ORG_BANNERS], + onCompleted: () => { + imageInputField.current.value = ""; + }, }); - if (response?.data?.updateOrgBanner?.success) { - callbackSetState(URL.createObjectURL(image)); - imageInputField.current.value = ""; - } }; - const handleDeleteImage = async ({ callback }) => { - const response = await deleteBanner({ + const handleDeleteImage = async ({ assetId }) => { + if (!assetId) { + imageInputField.current.value = ""; + return; + } + await deleteBanner({ variables: { orgId: activeOrg?.id, input: { - oldAssetId: "", + assetId, }, }, + refetchQueries: [GET_ORG_BANNERS], + onCompleted: () => { + imageInputField.current.value = ""; + }, }); - if (response?.data?.deleteOrgBanner?.success) { - callback(); - imageInputField.current.value = ""; - } }; - const [bannerImage, setBannerImage] = useState(banner.bannerImage); const handleReplaceBannerImage = async (file) => { - handleReplaceImage({ file, position: "banner", callbackSetState: setBannerImage }); + handleReplaceImage({ + file, + position: BANNER_POSITION.banner, + oldAssetId: customBannerImage?.id, + }); }; const handleDeleteBannerImage = async () => { handleDeleteImage({ - callback: () => setBannerImage(banner.bannerImage), + assetId: customBannerImage?.id, }); }; - const [topImage, setTopImage] = useState(banner.topImage); const handleReplaceTopImage = async (file) => { - handleReplaceImage({ file, position: "topImage", callbackSetState: setTopImage }); + handleReplaceImage({ + file, + position: BANNER_POSITION.topImage, + oldAssetId: customTopImage?.id, + }); }; const handleDeleteTopImage = async () => { handleDeleteImage({ - callback: () => setTopImage(banner.topImage), + assetId: customTopImage?.id, }); }; @@ -166,7 +188,20 @@ const CommandBanner = ({ banner, activeOrg }) => { Banner - {title} + {customBannerImageUrl ? ( + + ) : ( + {`${title} + )} Optimal size: 640 x 140px @@ -188,7 +223,20 @@ const CommandBanner = ({ banner, activeOrg }) => { Top Image - {topImage} + {customTopImageUrl ? ( + + ) : ( + {`${title} + )} 400 x 400px @@ -214,17 +262,26 @@ const CommandBanner = ({ banner, activeOrg }) => { const CustomizeBanners = () => { const { activeOrg } = useContext(GlobalContext); const { data } = useQuery(GET_ORG_BANNERS, { - //TODO: update query when implemented in backend variables: { orgId: activeOrg?.id, }, + skip: !activeOrg?.id, }); + const groupedBannerByCommand = groupBy(data?.getOrgBanners, (banner) => banner?.additionalData?.command); return ( - {commandBanners.map((banner, index) => ( - - ))} + {commandBanners.map((banner, index) => { + const customBanner = groupedBannerByCommand[banner.command]; + return ( + + ); + })} ); From 3a587de2d41a3a13ce88cdaff50e66a8e944b05f Mon Sep 17 00:00:00 2001 From: juniusfree <8164667+juniusfree@users.noreply.github.com> Date: Sun, 3 Mar 2024 09:56:24 +0800 Subject: [PATCH 14/43] Check for org sub --- .../Settings/CustomizeBanners/index.tsx | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx index f4d076a89..d4d7d7e7f 100644 --- a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx +++ b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx @@ -35,6 +35,8 @@ import { transformAndUploadMedia } from "utils/media"; import { GET_ORG_BANNERS } from "graphql/queries/orgAsset"; import groupBy from "lodash/groupBy"; import SafeImage from "components/SafeImage"; +import { usePaywall, useSubscriptionPaywall } from "utils/hooks"; +import { useNavigate } from "react-router-dom"; const BANNER_POSITION = { topImage: "topImage", @@ -260,13 +262,32 @@ const CommandBanner = ({ baseBanner, activeOrg, customBanner }) => { }; const CustomizeBanners = () => { + const navigate = useNavigate(); const { activeOrg } = useContext(GlobalContext); + const { isPremiumPlan, isEcosystemPlan } = useSubscriptionPaywall(); + const { setPaywall, setPaywallMessage, setOnCancel, setCanBeClosed } = usePaywall() || {}; const { data } = useQuery(GET_ORG_BANNERS, { variables: { orgId: activeOrg?.id, }, skip: !activeOrg?.id, }); + + if (!isPremiumPlan || !isEcosystemPlan) { + setOnCancel(() => { + return () => { + setPaywall(false); + setPaywallMessage(""); + setOnCancel(null); + setCanBeClosed(true); + navigate(-1); + }; + }); + setPaywallMessage(`Customize Banners`); + setPaywall(true); + return; + } + const groupedBannerByCommand = groupBy(data?.getOrgBanners, (banner) => banner?.additionalData?.command); return ( From b2bad6548c9af0ae9dbf526c25b6c865c6267cfa Mon Sep 17 00:00:00 2001 From: juniusfree <8164667+juniusfree@users.noreply.github.com> Date: Sun, 3 Mar 2024 10:08:20 +0800 Subject: [PATCH 15/43] Add exempted org ids --- .../src/components/Settings/CustomizeBanners/index.tsx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx index d4d7d7e7f..a599211c8 100644 --- a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx +++ b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx @@ -38,6 +38,8 @@ import SafeImage from "components/SafeImage"; import { usePaywall, useSubscriptionPaywall } from "utils/hooks"; import { useNavigate } from "react-router-dom"; +const EXEMPTED_ORG_IDS = ["911445364593262592", "844677430694510634", "1192224585215639572"]; + const BANNER_POSITION = { topImage: "topImage", banner: "banner", @@ -273,7 +275,7 @@ const CustomizeBanners = () => { skip: !activeOrg?.id, }); - if (!isPremiumPlan || !isEcosystemPlan) { + if (!isPremiumPlan || !isEcosystemPlan || EXEMPTED_ORG_IDS.includes(activeOrg?.id)) { setOnCancel(() => { return () => { setPaywall(false); @@ -283,7 +285,7 @@ const CustomizeBanners = () => { navigate(-1); }; }); - setPaywallMessage(`Customize Banners`); + setPaywallMessage("Customize Banners"); setPaywall(true); return; } From 2754655a7e71add1f850f197b4b644756daace5f Mon Sep 17 00:00:00 2001 From: juniusfree <8164667+juniusfree@users.noreply.github.com> Date: Sun, 3 Mar 2024 10:08:48 +0800 Subject: [PATCH 16/43] Add types to commandBanners --- .../src/components/Settings/CustomizeBanners/index.tsx | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx index a599211c8..b205b6a28 100644 --- a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx +++ b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx @@ -45,7 +45,13 @@ const BANNER_POSITION = { banner: "banner", }; -const commandBanners = [ +const commandBanners: { + title: string; + tooltip: string; + bannerImage: string; + topImage: string; + command: string; +}[] = [ { title: "Quests", tooltip: "Quests are a series of tasks that users can complete to earn rewards.", From 1f5900781e9bcf0874406872e699e448ec64f92d Mon Sep 17 00:00:00 2001 From: juniusfree <8164667+juniusfree@users.noreply.github.com> Date: Sun, 3 Mar 2024 10:14:21 +0800 Subject: [PATCH 17/43] Add snackbar --- .../src/components/Settings/CustomizeBanners/index.tsx | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx index b205b6a28..88dcd1286 100644 --- a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx +++ b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx @@ -106,6 +106,7 @@ const commandBanners: { const CommandBanner = ({ baseBanner, activeOrg, customBanner }) => { const { title, tooltip, command } = baseBanner; + const { setSnackbarAlertMessage, setSnackbarAlertOpen } = useAlerts(); const [updateBanner] = useMutation(UPDATE_ORG_BANNER); const [deleteBanner] = useMutation(DELETE_ORG_BANNER); const imageInputField = useRef(null); @@ -133,6 +134,8 @@ const CommandBanner = ({ baseBanner, activeOrg, customBanner }) => { refetchQueries: [GET_ORG_BANNERS], onCompleted: () => { imageInputField.current.value = ""; + setSnackbarAlertMessage("Updated successfully"); + setSnackbarAlertOpen(true); }, }); }; @@ -152,6 +155,8 @@ const CommandBanner = ({ baseBanner, activeOrg, customBanner }) => { refetchQueries: [GET_ORG_BANNERS], onCompleted: () => { imageInputField.current.value = ""; + setSnackbarAlertMessage("Deleted successfully"); + setSnackbarAlertOpen(true); }, }); }; From 82dbc966a5a20bad2eb9ba2b34cc50be884c0da4 Mon Sep 17 00:00:00 2001 From: juniusfree <8164667+juniusfree@users.noreply.github.com> Date: Sun, 3 Mar 2024 10:22:39 +0800 Subject: [PATCH 18/43] Add file validation --- .../Settings/CustomizeBanners/index.tsx | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx index 88dcd1286..c91980fa2 100644 --- a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx +++ b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx @@ -118,9 +118,24 @@ const CommandBanner = ({ baseBanner, activeOrg, customBanner }) => { const handleReplaceImage = async ({ file, position, oldAssetId }) => { const image = file.target.files[0]; + + if (!image || !image.type.includes("image")) { + setSnackbarAlertMessage("Invalid file type"); + setSnackbarAlertOpen(true); + return; + } + + const MAX_FILE_SIZE = 5 * 1024 * 1024; // 5MB + if (image.size > MAX_FILE_SIZE) { + setSnackbarAlertMessage("File size should be less than 5MB"); + setSnackbarAlertOpen(true); + return; + } + const { filename } = await transformAndUploadMedia({ file: image, }); + await updateBanner({ variables: { orgId: activeOrg?.id, From acf44448ca13d3e9053f060b658750f76d3e2408 Mon Sep 17 00:00:00 2001 From: juniusfree <8164667+juniusfree@users.noreply.github.com> Date: Sun, 3 Mar 2024 10:47:11 +0800 Subject: [PATCH 19/43] Fix layout, image size --- .../Settings/CustomizeBanners/index.tsx | 4 +-- .../Settings/CustomizeBanners/styles.tsx | 27 ++++++++++++++++--- 2 files changed, 26 insertions(+), 5 deletions(-) diff --git a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx index c91980fa2..3c7019cd6 100644 --- a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx +++ b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx @@ -35,7 +35,7 @@ import { transformAndUploadMedia } from "utils/media"; import { GET_ORG_BANNERS } from "graphql/queries/orgAsset"; import groupBy from "lodash/groupBy"; import SafeImage from "components/SafeImage"; -import { usePaywall, useSubscriptionPaywall } from "utils/hooks"; +import useAlerts, { usePaywall, useSubscriptionPaywall } from "utils/hooks"; import { useNavigate } from "react-router-dom"; const EXEMPTED_ORG_IDS = ["911445364593262592", "844677430694510634", "1192224585215639572"]; @@ -226,7 +226,7 @@ const CommandBanner = ({ baseBanner, activeOrg, customBanner }) => { height: "auto", objectFit: "cover", width: "100%", - maxHeight: "25vh", + maxHeight: "100%", }} /> ) : ( diff --git a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/styles.tsx b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/styles.tsx index d9b8d268b..7842144c7 100644 --- a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/styles.tsx +++ b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/styles.tsx @@ -3,16 +3,29 @@ import styled from "styled-components"; export const CustomizeBannersContainer = styled(Grid)` && { + display: flex; max-width: 100%; } ${({ theme }) => theme.breakpoints.up("sm")} { && { - max-width: 50%; + max-width: 65%; } } ${({ theme }) => theme.breakpoints.up("md")} { + && { + max-width: 60%; + } + } + + ${({ theme }) => theme.breakpoints.up("lg")} { + && { + max-width: 70%; + } + } + + ${({ theme }) => theme.breakpoints.up("xl")} { && { max-width: 80%; } @@ -21,8 +34,15 @@ export const CustomizeBannersContainer = styled(Grid)` export const CommandsContainer = styled((props) => )` && { + justify-content: center; gap: 24px; } + + ${({ theme }) => theme.breakpoints.up("lg")} { + && { + justify-content: flex-start; + } + } `; export const CommandBannerContainer = styled(Grid)` @@ -63,7 +83,7 @@ export const HeaderText = styled(Typography)` `; export const CommandBannerUploadContainer = styled(Grid)` - ${({ theme }) => theme.breakpoints.up("md")} { + ${({ theme }) => theme.breakpoints.up("lg")} { display: flex; } `; @@ -83,10 +103,11 @@ export const BannerUploadHeader = styled(Typography)` export const BannerUploadImageContainer = styled(Grid)` && { height: 70px; - width: 320px; + width: 100%; border-radius: 6px; overflow: hidden; } + && > img { height: 100%; width: 100%; From b6f6a68bcba225fb281f3c233449164a9de2fd15 Mon Sep 17 00:00:00 2001 From: juniusfree <8164667+juniusfree@users.noreply.github.com> Date: Sun, 3 Mar 2024 11:15:53 +0800 Subject: [PATCH 20/43] Fix upload cursor --- .../components/Settings/CustomizeBanners/index.tsx | 12 ++++++------ .../components/Settings/CustomizeBanners/styles.tsx | 7 +------ 2 files changed, 7 insertions(+), 12 deletions(-) diff --git a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx index 3c7019cd6..f46f553af 100644 --- a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx +++ b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx @@ -236,11 +236,11 @@ const CommandBanner = ({ baseBanner, activeOrg, customBanner }) => { Optimal size: 640 x 140px + imageInputField.current.click()}> + + - - - @@ -271,11 +271,11 @@ const CommandBanner = ({ baseBanner, activeOrg, customBanner }) => { 400 x 400px + imageInputField.current.click()}> + + - - - diff --git a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/styles.tsx b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/styles.tsx index 7842144c7..64d033b42 100644 --- a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/styles.tsx +++ b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/styles.tsx @@ -146,14 +146,9 @@ export const BannerUploadButtonContainer = styled(Grid)` export const ButtonInputContainer = styled(Grid)` && { - position: relative; - - &:hover { - opacity: 0.8; - } + position: absolute; & > input { - z-index: 1; position: absolute; top: 0; left: 0; From d5a28925801cc0575659478f36986be33bab0bbe Mon Sep 17 00:00:00 2001 From: juniusfree <8164667+juniusfree@users.noreply.github.com> Date: Sun, 3 Mar 2024 11:24:00 +0800 Subject: [PATCH 21/43] Add snackbar on error --- .../Settings/CustomizeBanners/index.tsx | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx index f46f553af..1e812f7d2 100644 --- a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx +++ b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx @@ -152,13 +152,22 @@ const CommandBanner = ({ baseBanner, activeOrg, customBanner }) => { setSnackbarAlertMessage("Updated successfully"); setSnackbarAlertOpen(true); }, + onError: () => { + setSnackbarAlertMessage("Error updating image"); + setSnackbarAlertOpen(true); + }, }); }; const handleDeleteImage = async ({ assetId }) => { - if (!assetId) { + const onCompleted = () => { imageInputField.current.value = ""; + setSnackbarAlertMessage("Deleted successfully"); + setSnackbarAlertOpen(true); return; + }; + if (!assetId) { + onCompleted(); } await deleteBanner({ variables: { @@ -168,9 +177,9 @@ const CommandBanner = ({ baseBanner, activeOrg, customBanner }) => { }, }, refetchQueries: [GET_ORG_BANNERS], - onCompleted: () => { - imageInputField.current.value = ""; - setSnackbarAlertMessage("Deleted successfully"); + onCompleted, + onError: () => { + setSnackbarAlertMessage("Error deleting image"); setSnackbarAlertOpen(true); }, }); From 9edbe72eb94b6951599335d70b589b67edf41435 Mon Sep 17 00:00:00 2001 From: juniusfree <8164667+juniusfree@users.noreply.github.com> Date: Sun, 3 Mar 2024 11:25:35 +0800 Subject: [PATCH 22/43] Add return --- .../src/components/Settings/CustomizeBanners/index.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx index 1e812f7d2..9b64998e9 100644 --- a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx +++ b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx @@ -168,6 +168,7 @@ const CommandBanner = ({ baseBanner, activeOrg, customBanner }) => { }; if (!assetId) { onCompleted(); + return; } await deleteBanner({ variables: { From 44af3b5be669a4f047ce3cd5d4fa9bc5cf5da2b8 Mon Sep 17 00:00:00 2001 From: juniusfree <8164667+juniusfree@users.noreply.github.com> Date: Sun, 3 Mar 2024 11:27:06 +0800 Subject: [PATCH 23/43] Remove unused imports --- .../src/components/Settings/CustomizeBanners/index.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx index 9b64998e9..07b9a7550 100644 --- a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx +++ b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx @@ -1,6 +1,6 @@ -import { Box, Button, Divider, Grid, Stack, Typography } from "@mui/material"; +import { Box } from "@mui/material"; import DeleteIcon from "components/Icons/Delete"; -import { useContext, useRef, useState } from "react"; +import { useContext, useRef } from "react"; import { ButtonIconWrapper } from "components/Shared/styles"; import ReplaceIcon from "components/Icons/ReplaceIcon"; import { From 7d5c065fae1c8955ea22d898350505612a34e6ac Mon Sep 17 00:00:00 2001 From: juniusfree <8164667+juniusfree@users.noreply.github.com> Date: Sun, 3 Mar 2024 11:41:14 +0800 Subject: [PATCH 24/43] Refactor update and delete functions --- .../Settings/CustomizeBanners/index.tsx | 169 +++++++++--------- 1 file changed, 89 insertions(+), 80 deletions(-) diff --git a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx index 07b9a7550..fe847c643 100644 --- a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx +++ b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx @@ -104,98 +104,29 @@ const commandBanners: { }, ]; -const CommandBanner = ({ baseBanner, activeOrg, customBanner }) => { +const CommandBanner = ({ baseBanner, customBanner, handleReplaceImage, handleDeleteImage }) => { const { title, tooltip, command } = baseBanner; - const { setSnackbarAlertMessage, setSnackbarAlertOpen } = useAlerts(); - const [updateBanner] = useMutation(UPDATE_ORG_BANNER); - const [deleteBanner] = useMutation(DELETE_ORG_BANNER); - const imageInputField = useRef(null); + const bannerImageInputField = useRef(null); + const topImageInputField = useRef(null); const customBannerImage = customBanner?.find((banner) => banner?.additionalData?.position === BANNER_POSITION.banner); const customTopImage = customBanner?.find((banner) => banner?.additionalData?.position === BANNER_POSITION.topImage); const customBannerImageUrl = customBannerImage?.url; const customTopImageUrl = customTopImage?.url; - const handleReplaceImage = async ({ file, position, oldAssetId }) => { - const image = file.target.files[0]; - - if (!image || !image.type.includes("image")) { - setSnackbarAlertMessage("Invalid file type"); - setSnackbarAlertOpen(true); - return; - } - - const MAX_FILE_SIZE = 5 * 1024 * 1024; // 5MB - if (image.size > MAX_FILE_SIZE) { - setSnackbarAlertMessage("File size should be less than 5MB"); - setSnackbarAlertOpen(true); - return; - } - - const { filename } = await transformAndUploadMedia({ - file: image, - }); - - await updateBanner({ - variables: { - orgId: activeOrg?.id, - input: { - command, - url: filename, - position, - oldAssetId, - }, - }, - refetchQueries: [GET_ORG_BANNERS], - onCompleted: () => { - imageInputField.current.value = ""; - setSnackbarAlertMessage("Updated successfully"); - setSnackbarAlertOpen(true); - }, - onError: () => { - setSnackbarAlertMessage("Error updating image"); - setSnackbarAlertOpen(true); - }, - }); - }; - - const handleDeleteImage = async ({ assetId }) => { - const onCompleted = () => { - imageInputField.current.value = ""; - setSnackbarAlertMessage("Deleted successfully"); - setSnackbarAlertOpen(true); - return; - }; - if (!assetId) { - onCompleted(); - return; - } - await deleteBanner({ - variables: { - orgId: activeOrg?.id, - input: { - assetId, - }, - }, - refetchQueries: [GET_ORG_BANNERS], - onCompleted, - onError: () => { - setSnackbarAlertMessage("Error deleting image"); - setSnackbarAlertOpen(true); - }, - }); - }; - const handleReplaceBannerImage = async (file) => { handleReplaceImage({ file, position: BANNER_POSITION.banner, oldAssetId: customBannerImage?.id, + command, + imageInputField: bannerImageInputField, }); }; const handleDeleteBannerImage = async () => { handleDeleteImage({ assetId: customBannerImage?.id, + imageInputField: bannerImageInputField, }); }; @@ -204,11 +135,14 @@ const CommandBanner = ({ baseBanner, activeOrg, customBanner }) => { file, position: BANNER_POSITION.topImage, oldAssetId: customTopImage?.id, + command, + imageInputField: topImageInputField, }); }; const handleDeleteTopImage = async () => { handleDeleteImage({ assetId: customTopImage?.id, + imageInputField: topImageInputField, }); }; @@ -246,11 +180,11 @@ const CommandBanner = ({ baseBanner, activeOrg, customBanner }) => { Optimal size: 640 x 140px - imageInputField.current.click()}> + bannerImageInputField.current.click()}> - + @@ -281,11 +215,11 @@ const CommandBanner = ({ baseBanner, activeOrg, customBanner }) => { 400 x 400px - imageInputField.current.click()}> + topImageInputField.current.click()}> - + @@ -310,6 +244,9 @@ const CustomizeBanners = () => { }, skip: !activeOrg?.id, }); + const { setSnackbarAlertMessage, setSnackbarAlertOpen } = useAlerts(); + const [updateBanner] = useMutation(UPDATE_ORG_BANNER); + const [deleteBanner] = useMutation(DELETE_ORG_BANNER); if (!isPremiumPlan || !isEcosystemPlan || EXEMPTED_ORG_IDS.includes(activeOrg?.id)) { setOnCancel(() => { @@ -327,6 +264,77 @@ const CustomizeBanners = () => { } const groupedBannerByCommand = groupBy(data?.getOrgBanners, (banner) => banner?.additionalData?.command); + + const handleReplaceImage = async ({ file, position, oldAssetId, command, imageInputField }) => { + const image = file.target.files[0]; + + if (!image || !image.type.includes("image")) { + setSnackbarAlertMessage("Invalid file type"); + setSnackbarAlertOpen(true); + return; + } + + const MAX_FILE_SIZE = 5 * 1024 * 1024; // 5MB + if (image.size > MAX_FILE_SIZE) { + setSnackbarAlertMessage("File size should be less than 5MB"); + setSnackbarAlertOpen(true); + return; + } + + const { filename } = await transformAndUploadMedia({ + file: image, + }); + + await updateBanner({ + variables: { + orgId: activeOrg?.id, + input: { + command, + url: filename, + position, + oldAssetId, + }, + }, + refetchQueries: [GET_ORG_BANNERS], + onCompleted: () => { + imageInputField.current.value = ""; + setSnackbarAlertMessage("Updated successfully"); + setSnackbarAlertOpen(true); + }, + onError: () => { + setSnackbarAlertMessage("Error updating image"); + setSnackbarAlertOpen(true); + }, + }); + }; + + const handleDeleteImage = async ({ assetId, imageInputField }) => { + const onCompleted = () => { + imageInputField.current.value = ""; + setSnackbarAlertMessage("Deleted successfully"); + setSnackbarAlertOpen(true); + return; + }; + if (!assetId) { + onCompleted(); + return; + } + await deleteBanner({ + variables: { + orgId: activeOrg?.id, + input: { + assetId, + }, + }, + refetchQueries: [GET_ORG_BANNERS], + onCompleted, + onError: () => { + setSnackbarAlertMessage("Error deleting image"); + setSnackbarAlertOpen(true); + }, + }); + }; + return ( @@ -337,7 +345,8 @@ const CustomizeBanners = () => { key={`${banner.command}-banner-${index}`} baseBanner={banner} customBanner={customBanner} - activeOrg={activeOrg} + handleReplaceImage={handleReplaceImage} + handleDeleteImage={handleDeleteImage} /> ); })} From bfe7c0475c39c48b8bb34d32e85cf97aa29a0d17 Mon Sep 17 00:00:00 2001 From: juniusfree <8164667+juniusfree@users.noreply.github.com> Date: Sun, 3 Mar 2024 11:47:00 +0800 Subject: [PATCH 25/43] Use error alert --- .../components/Settings/CustomizeBanners/index.tsx | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx index fe847c643..fd0dae4b9 100644 --- a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx +++ b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx @@ -244,7 +244,7 @@ const CustomizeBanners = () => { }, skip: !activeOrg?.id, }); - const { setSnackbarAlertMessage, setSnackbarAlertOpen } = useAlerts(); + const { setSnackbarAlertMessage, setSnackbarAlertOpen, showError } = useAlerts(); const [updateBanner] = useMutation(UPDATE_ORG_BANNER); const [deleteBanner] = useMutation(DELETE_ORG_BANNER); @@ -269,15 +269,13 @@ const CustomizeBanners = () => { const image = file.target.files[0]; if (!image || !image.type.includes("image")) { - setSnackbarAlertMessage("Invalid file type"); - setSnackbarAlertOpen(true); + showError("Invalid file type"); return; } const MAX_FILE_SIZE = 5 * 1024 * 1024; // 5MB if (image.size > MAX_FILE_SIZE) { - setSnackbarAlertMessage("File size should be less than 5MB"); - setSnackbarAlertOpen(true); + showError("File size should be less than 5MB"); return; } @@ -302,8 +300,7 @@ const CustomizeBanners = () => { setSnackbarAlertOpen(true); }, onError: () => { - setSnackbarAlertMessage("Error updating image"); - setSnackbarAlertOpen(true); + showError("Error updating image"); }, }); }; @@ -329,8 +326,7 @@ const CustomizeBanners = () => { refetchQueries: [GET_ORG_BANNERS], onCompleted, onError: () => { - setSnackbarAlertMessage("Error deleting image"); - setSnackbarAlertOpen(true); + showError("Error deleting image"); }, }); }; From 7c28edb241edf1149af3f88ee94d3298ed7771c5 Mon Sep 17 00:00:00 2001 From: juniusfree <8164667+juniusfree@users.noreply.github.com> Date: Sun, 3 Mar 2024 11:52:59 +0800 Subject: [PATCH 26/43] Add snackbar severity --- .../src/components/Settings/CustomizeBanners/index.tsx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx index fd0dae4b9..d3dacd1d7 100644 --- a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx +++ b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx @@ -244,7 +244,7 @@ const CustomizeBanners = () => { }, skip: !activeOrg?.id, }); - const { setSnackbarAlertMessage, setSnackbarAlertOpen, showError } = useAlerts(); + const { setSnackbarAlertMessage, setSnackbarAlertOpen, setSnackbarAlertSeverity, showError } = useAlerts(); const [updateBanner] = useMutation(UPDATE_ORG_BANNER); const [deleteBanner] = useMutation(DELETE_ORG_BANNER); @@ -296,6 +296,7 @@ const CustomizeBanners = () => { refetchQueries: [GET_ORG_BANNERS], onCompleted: () => { imageInputField.current.value = ""; + setSnackbarAlertSeverity("success"); setSnackbarAlertMessage("Updated successfully"); setSnackbarAlertOpen(true); }, @@ -308,6 +309,7 @@ const CustomizeBanners = () => { const handleDeleteImage = async ({ assetId, imageInputField }) => { const onCompleted = () => { imageInputField.current.value = ""; + setSnackbarAlertSeverity("success"); setSnackbarAlertMessage("Deleted successfully"); setSnackbarAlertOpen(true); return; From dce100ddb7d8c0735599d22c570c54a2357cbe60 Mon Sep 17 00:00:00 2001 From: juniusfree <8164667+juniusfree@users.noreply.github.com> Date: Mon, 4 Mar 2024 15:35:33 +0800 Subject: [PATCH 27/43] Fix subscription check --- .../src/components/Settings/CustomizeBanners/index.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx index d3dacd1d7..3b6985f00 100644 --- a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx +++ b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx @@ -236,8 +236,8 @@ const CommandBanner = ({ baseBanner, customBanner, handleReplaceImage, handleDel const CustomizeBanners = () => { const navigate = useNavigate(); const { activeOrg } = useContext(GlobalContext); - const { isPremiumPlan, isEcosystemPlan } = useSubscriptionPaywall(); - const { setPaywall, setPaywallMessage, setOnCancel, setCanBeClosed } = usePaywall() || {}; + const { isPremiumPlan, isEcosystemPlan, setPaywall, setPaywallMessage, setOnCancel, setCanBeClosed } = + useSubscriptionPaywall(); const { data } = useQuery(GET_ORG_BANNERS, { variables: { orgId: activeOrg?.id, @@ -248,7 +248,7 @@ const CustomizeBanners = () => { const [updateBanner] = useMutation(UPDATE_ORG_BANNER); const [deleteBanner] = useMutation(DELETE_ORG_BANNER); - if (!isPremiumPlan || !isEcosystemPlan || EXEMPTED_ORG_IDS.includes(activeOrg?.id)) { + if (!(isPremiumPlan || isEcosystemPlan) || EXEMPTED_ORG_IDS.includes(activeOrg?.id)) { setOnCancel(() => { return () => { setPaywall(false); From 7dab6b8ba162413bf989dd87b34d9ee5f2629b2b Mon Sep 17 00:00:00 2001 From: juniusfree <8164667+juniusfree@users.noreply.github.com> Date: Tue, 5 Mar 2024 15:38:42 +0800 Subject: [PATCH 28/43] Rename topImage to top-image --- .../src/components/Settings/CustomizeBanners/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx index 3b6985f00..00fdc3fd1 100644 --- a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx +++ b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx @@ -41,7 +41,7 @@ import { useNavigate } from "react-router-dom"; const EXEMPTED_ORG_IDS = ["911445364593262592", "844677430694510634", "1192224585215639572"]; const BANNER_POSITION = { - topImage: "topImage", + topImage: "top-image", banner: "banner", }; From 2301b3194635b3e6db51796532c6c39ca19ccd49 Mon Sep 17 00:00:00 2001 From: juniusfree <8164667+juniusfree@users.noreply.github.com> Date: Tue, 5 Mar 2024 17:06:36 +0800 Subject: [PATCH 29/43] Fix paywall --- .../src/components/Settings/CustomizeBanners/index.tsx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx index 00fdc3fd1..8f8e3b36b 100644 --- a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx +++ b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx @@ -263,6 +263,10 @@ const CustomizeBanners = () => { return; } + if (isEcosystemPlan || isPremiumPlan) { + setPaywall(false); + } + const groupedBannerByCommand = groupBy(data?.getOrgBanners, (banner) => banner?.additionalData?.command); const handleReplaceImage = async ({ file, position, oldAssetId, command, imageInputField }) => { From e3ffefd0ab24e32eecb78556da9568b63ebeaf97 Mon Sep 17 00:00:00 2001 From: juniusfree <8164667+juniusfree@users.noreply.github.com> Date: Tue, 5 Mar 2024 20:56:04 +0800 Subject: [PATCH 30/43] Use slug --- .../src/components/Settings/CustomizeBanners/index.tsx | 6 +++--- wondrous-bot-admin/src/graphql/fragments/orgAsset.ts | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx index 8f8e3b36b..53c52a27e 100644 --- a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx +++ b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx @@ -111,8 +111,8 @@ const CommandBanner = ({ baseBanner, customBanner, handleReplaceImage, handleDel const customBannerImage = customBanner?.find((banner) => banner?.additionalData?.position === BANNER_POSITION.banner); const customTopImage = customBanner?.find((banner) => banner?.additionalData?.position === BANNER_POSITION.topImage); - const customBannerImageUrl = customBannerImage?.url; - const customTopImageUrl = customTopImage?.url; + const customBannerImageUrl = customBannerImage?.slug; + const customTopImageUrl = customTopImage?.slug; const handleReplaceBannerImage = async (file) => { handleReplaceImage({ @@ -292,7 +292,7 @@ const CustomizeBanners = () => { orgId: activeOrg?.id, input: { command, - url: filename, + slug: filename, position, oldAssetId, }, diff --git a/wondrous-bot-admin/src/graphql/fragments/orgAsset.ts b/wondrous-bot-admin/src/graphql/fragments/orgAsset.ts index 7f63269cb..9391e93a7 100644 --- a/wondrous-bot-admin/src/graphql/fragments/orgAsset.ts +++ b/wondrous-bot-admin/src/graphql/fragments/orgAsset.ts @@ -4,7 +4,7 @@ export const OrgBannerFragment = gql` fragment OrgBannerFragment on OrgBanner { id orgId - url + slug additionalData { command position From 0655dfa51fcd5974dce7e6769574a5b9cd91c321 Mon Sep 17 00:00:00 2001 From: juniusfree <8164667+juniusfree@users.noreply.github.com> Date: Tue, 5 Mar 2024 21:37:42 +0800 Subject: [PATCH 31/43] Add loading --- .../src/components/Settings/CustomizeBanners/index.tsx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx index 53c52a27e..b4296ae24 100644 --- a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx +++ b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx @@ -236,7 +236,7 @@ const CommandBanner = ({ baseBanner, customBanner, handleReplaceImage, handleDel const CustomizeBanners = () => { const navigate = useNavigate(); const { activeOrg } = useContext(GlobalContext); - const { isPremiumPlan, isEcosystemPlan, setPaywall, setPaywallMessage, setOnCancel, setCanBeClosed } = + const { isLoading, isPremiumPlan, isEcosystemPlan, setPaywall, setPaywallMessage, setOnCancel, setCanBeClosed } = useSubscriptionPaywall(); const { data } = useQuery(GET_ORG_BANNERS, { variables: { @@ -248,6 +248,10 @@ const CustomizeBanners = () => { const [updateBanner] = useMutation(UPDATE_ORG_BANNER); const [deleteBanner] = useMutation(DELETE_ORG_BANNER); + if (isLoading) { + return null; + } + if (!(isPremiumPlan || isEcosystemPlan) || EXEMPTED_ORG_IDS.includes(activeOrg?.id)) { setOnCancel(() => { return () => { From 9c0560922c362c5e4fae0df1cd35741b346778c3 Mon Sep 17 00:00:00 2001 From: juniusfree <8164667+juniusfree@users.noreply.github.com> Date: Tue, 5 Mar 2024 21:39:19 +0800 Subject: [PATCH 32/43] Update store tooltip --- .../src/components/Settings/CustomizeBanners/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx index b4296ae24..360caf0f0 100644 --- a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx +++ b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx @@ -83,7 +83,7 @@ const commandBanners: { }, { title: "Store", - tooltip: "Purchase items with your experience points.", + tooltip: "View all of the items available for purchase.", bannerImage: "/images/banner-images/store-banner.png", topImage: "/images/banner-images/store-circle.png", command: "store", From 55bad338fbe5e183d96ef75d7dc3c316a4c0f34a Mon Sep 17 00:00:00 2001 From: juniusfree <8164667+juniusfree@users.noreply.github.com> Date: Tue, 5 Mar 2024 22:12:08 +0800 Subject: [PATCH 33/43] Fix layout --- .../Settings/CustomizeBanners/styles.tsx | 34 +++---------------- 1 file changed, 5 insertions(+), 29 deletions(-) diff --git a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/styles.tsx b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/styles.tsx index 64d033b42..711961967 100644 --- a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/styles.tsx +++ b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/styles.tsx @@ -1,34 +1,10 @@ -import { Divider, Grid, Typography } from "@mui/material"; +import { Box, Divider, Grid, Typography } from "@mui/material"; import styled from "styled-components"; -export const CustomizeBannersContainer = styled(Grid)` +export const CustomizeBannersContainer = styled((props) => )` && { display: flex; - max-width: 100%; - } - - ${({ theme }) => theme.breakpoints.up("sm")} { - && { - max-width: 65%; - } - } - - ${({ theme }) => theme.breakpoints.up("md")} { - && { - max-width: 60%; - } - } - - ${({ theme }) => theme.breakpoints.up("lg")} { - && { - max-width: 70%; - } - } - - ${({ theme }) => theme.breakpoints.up("xl")} { - && { - max-width: 80%; - } + flex: 1; } `; @@ -38,9 +14,9 @@ export const CommandsContainer = styled((props) => theme.breakpoints.up("lg")} { + ${({ theme }) => theme.breakpoints.up("xl")} { && { - justify-content: flex-start; + justify-content: space-between; } } `; From bec9ff6b7bf622a6d0e20da20e06a506b1825458 Mon Sep 17 00:00:00 2001 From: juniusfree <8164667+juniusfree@users.noreply.github.com> Date: Tue, 5 Mar 2024 22:16:54 +0800 Subject: [PATCH 34/43] fix layout --- .../src/components/Settings/CustomizeBanners/styles.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/styles.tsx b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/styles.tsx index 711961967..5365930eb 100644 --- a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/styles.tsx +++ b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/styles.tsx @@ -16,7 +16,7 @@ export const CommandsContainer = styled((props) => theme.breakpoints.up("xl")} { && { - justify-content: space-between; + justify-content: flex-start; } } `; From 02d0874a877746aae6862ca2f582ecea3bb691e8 Mon Sep 17 00:00:00 2001 From: juniusfree <8164667+juniusfree@users.noreply.github.com> Date: Thu, 7 Mar 2024 16:09:41 +0800 Subject: [PATCH 35/43] Remove oldassetid --- .../components/Settings/CustomizeBanners/index.tsx | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx index 360caf0f0..551786e16 100644 --- a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx +++ b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx @@ -118,7 +118,6 @@ const CommandBanner = ({ baseBanner, customBanner, handleReplaceImage, handleDel handleReplaceImage({ file, position: BANNER_POSITION.banner, - oldAssetId: customBannerImage?.id, command, imageInputField: bannerImageInputField, }); @@ -134,7 +133,6 @@ const CommandBanner = ({ baseBanner, customBanner, handleReplaceImage, handleDel handleReplaceImage({ file, position: BANNER_POSITION.topImage, - oldAssetId: customTopImage?.id, command, imageInputField: topImageInputField, }); @@ -248,11 +246,7 @@ const CustomizeBanners = () => { const [updateBanner] = useMutation(UPDATE_ORG_BANNER); const [deleteBanner] = useMutation(DELETE_ORG_BANNER); - if (isLoading) { - return null; - } - - if (!(isPremiumPlan || isEcosystemPlan) || EXEMPTED_ORG_IDS.includes(activeOrg?.id)) { + if (isLoading || !(isPremiumPlan || isEcosystemPlan) || EXEMPTED_ORG_IDS.includes(activeOrg?.id)) { setOnCancel(() => { return () => { setPaywall(false); @@ -264,7 +258,7 @@ const CustomizeBanners = () => { }); setPaywallMessage("Customize Banners"); setPaywall(true); - return; + return null; } if (isEcosystemPlan || isPremiumPlan) { @@ -273,7 +267,7 @@ const CustomizeBanners = () => { const groupedBannerByCommand = groupBy(data?.getOrgBanners, (banner) => banner?.additionalData?.command); - const handleReplaceImage = async ({ file, position, oldAssetId, command, imageInputField }) => { + const handleReplaceImage = async ({ file, position, command, imageInputField }) => { const image = file.target.files[0]; if (!image || !image.type.includes("image")) { @@ -298,7 +292,6 @@ const CustomizeBanners = () => { command, slug: filename, position, - oldAssetId, }, }, refetchQueries: [GET_ORG_BANNERS], From a0261f1df375a98cc660d8a189244913fb5ff3b0 Mon Sep 17 00:00:00 2001 From: juniusfree <8164667+juniusfree@users.noreply.github.com> Date: Thu, 7 Mar 2024 16:25:19 +0800 Subject: [PATCH 36/43] Fix width --- .../src/components/Settings/CustomizeBanners/styles.tsx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/styles.tsx b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/styles.tsx index 5365930eb..a73fdc35a 100644 --- a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/styles.tsx +++ b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/styles.tsx @@ -65,7 +65,10 @@ export const CommandBannerUploadContainer = styled(Grid)` `; export const BannerUploadContainer = styled(Grid)` - padding: 14px; + && { + padding: 14px; + flex: 1; + } `; export const BannerUploadHeader = styled(Typography)` From 80a1ad23795dfbcf47950b49b243d0be10ac39d8 Mon Sep 17 00:00:00 2001 From: juniusfree <8164667+juniusfree@users.noreply.github.com> Date: Mon, 18 Mar 2024 22:35:38 +0800 Subject: [PATCH 37/43] Update query and upsert --- .../Settings/CustomizeBanners/index.tsx | 164 ++++++++++++------ .../src/graphql/fragments/orgAsset.ts | 13 +- .../src/graphql/mutations/orgAsset.ts | 9 +- .../src/graphql/queries/orgAsset.ts | 12 +- 4 files changed, 125 insertions(+), 73 deletions(-) diff --git a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx index 551786e16..da04081df 100644 --- a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx +++ b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx @@ -28,97 +28,150 @@ import { } from "./styles"; import { StyledInformationTooltip } from "components/Shared/Tooltip"; import InformationTooltip from "components/Icons/information.svg"; -import { DELETE_ORG_BANNER, UPDATE_ORG_BANNER } from "graphql/mutations/orgAsset"; +import { DELETE_ORG_BANNER, UPSERT_ORG_CUSTOM_BANNER } from "graphql/mutations/orgAsset"; import { useMutation, useQuery } from "@apollo/client"; import GlobalContext from "utils/context/GlobalContext"; import { transformAndUploadMedia } from "utils/media"; -import { GET_ORG_BANNERS } from "graphql/queries/orgAsset"; -import groupBy from "lodash/groupBy"; +import { GET_ORG_CUSTOM_ASSETS } from "graphql/queries/orgAsset"; import SafeImage from "components/SafeImage"; -import useAlerts, { usePaywall, useSubscriptionPaywall } from "utils/hooks"; +import useAlerts, { useSubscriptionPaywall } from "utils/hooks"; import { useNavigate } from "react-router-dom"; const EXEMPTED_ORG_IDS = ["911445364593262592", "844677430694510634", "1192224585215639572"]; -const BANNER_POSITION = { - topImage: "top-image", - banner: "banner", +const ORG_ASSET_PURPOSE = { + questBanner: "quest_banner", + levelBanner: "level_banner", + leaderboardBanner: "leaderboard_banner", + startQuestBanner: "start_quest_banner", + mySubmissionBanner: "my_submission_banner", + storeBanner: "store_banner", + myPurchasesBanner: "my_purchases_banner", // TODO: add to backend + onboardMeBanner: "onboard_me_banner", // TODO: add to backend + referralBanner: "referral_banner", + questLogo: "quest_logo", + levelLogo: "level_logo", + leaderboardLogo: "leaderboard_logo", + mySubmissionLogo: "my_submission_logo", + storeLogo: "store_logo", + myPurchasesLogo: "my_purchases_logo", // TODO: add to backend + onboardMeLogo: "onboard_me_logo", // TODO: add to backend + referralLogo: "referral_logo", }; const commandBanners: { title: string; tooltip: string; - bannerImage: string; - topImage: string; - command: string; + banner: { + purpose: (typeof ORG_ASSET_PURPOSE)[keyof typeof ORG_ASSET_PURPOSE]; + image: string; + }; + logo: { + purpose: (typeof ORG_ASSET_PURPOSE)[keyof typeof ORG_ASSET_PURPOSE]; + image: string; + }; }[] = [ { title: "Quests", tooltip: "Quests are a series of tasks that users can complete to earn rewards.", - bannerImage: "/images/banner-images/quest-banner.png", - topImage: "/images/banner-images/quest-circle.png", - command: "quests", + banner: { + purpose: ORG_ASSET_PURPOSE.questBanner, + image: "/images/banner-images/quest-banner.png", + }, + logo: { + purpose: ORG_ASSET_PURPOSE.questLogo, + image: "/images/banner-images/quest-circle.png", + }, }, { title: "My Submissions", tooltip: "View all of your submissions and their statuses.", - bannerImage: "/images/banner-images/sub-banner.png", - topImage: "/images/banner-images/sub-circle.png", - command: "my-submissions", + banner: { + purpose: ORG_ASSET_PURPOSE.mySubmissionBanner, + image: "/images/banner-images/sub-banner.png", + }, + logo: { + purpose: ORG_ASSET_PURPOSE.mySubmissionLogo, + image: "/images/banner-images/sub-circle.png", + }, }, { title: "My Level", tooltip: "View your current level and experience points.", - bannerImage: "/images/banner-images/my-level-banner.png", - topImage: "/images/banner-images/my-level-circle.png", - command: "my-level", + banner: { + purpose: ORG_ASSET_PURPOSE.levelBanner, + image: "/images/banner-images/my-level-banner.png", + }, + logo: { + purpose: ORG_ASSET_PURPOSE.levelLogo, + image: "/images/banner-images/my-level-circle.png", + }, }, { title: "Leaderboard", tooltip: "View the top users and their levels.", - bannerImage: "/images/banner-images/leaderboard-banner.png", - topImage: "/images/banner-images/leaderboard-circle.png", - command: "leaderboard", + banner: { + purpose: ORG_ASSET_PURPOSE.leaderboardBanner, + image: "/images/banner-images/leaderboard-banner.png", + }, + logo: { + purpose: ORG_ASSET_PURPOSE.leaderboardLogo, + image: "/images/banner-images/leaderboard-circle.png", + }, }, { title: "Store", tooltip: "View all of the items available for purchase.", - bannerImage: "/images/banner-images/store-banner.png", - topImage: "/images/banner-images/store-circle.png", - command: "store", + banner: { + purpose: ORG_ASSET_PURPOSE.storeBanner, + image: "/images/banner-images/store-banner.png", + }, + logo: { + purpose: ORG_ASSET_PURPOSE.storeLogo, + image: "/images/banner-images/store-circle.png", + }, }, { title: "My Purchases", tooltip: "View all of your purchases.", - bannerImage: "/images/banner-images/my-purchases-banner.png", - topImage: "/images/banner-images/my-purchases-circle.png", - command: "my-purchases", + banner: { + purpose: ORG_ASSET_PURPOSE.myPurchasesBanner, + image: "/images/banner-images/my-purchases-banner.png", + }, + logo: { + purpose: ORG_ASSET_PURPOSE.myPurchasesLogo, + image: "/images/banner-images/my-purchases-circle.png", + }, }, { title: "Onboard Me", tooltip: "Complete the onboarding process.", - bannerImage: "/images/banner-images/onboard-me-banner.png", - topImage: "/images/banner-images/onboard-me-circle.png", - command: "onboard-me", + banner: { + purpose: ORG_ASSET_PURPOSE.onboardMeBanner, + image: "/images/banner-images/onboard-me-banner.png", + }, + logo: { + purpose: ORG_ASSET_PURPOSE.onboardMeLogo, + image: "/images/banner-images/onboard-me-circle.png", + }, }, ]; const CommandBanner = ({ baseBanner, customBanner, handleReplaceImage, handleDeleteImage }) => { - const { title, tooltip, command } = baseBanner; + const { title, tooltip, banner, logo } = baseBanner; const bannerImageInputField = useRef(null); const topImageInputField = useRef(null); - const customBannerImage = customBanner?.find((banner) => banner?.additionalData?.position === BANNER_POSITION.banner); - const customTopImage = customBanner?.find((banner) => banner?.additionalData?.position === BANNER_POSITION.topImage); - const customBannerImageUrl = customBannerImage?.slug; - const customTopImageUrl = customTopImage?.slug; + const customBannerImage = customBanner?.find((customBanner) => customBanner.purpose === banner.purpose); + const customTopImage = customBanner?.find((customBanner) => customBanner.purpose === logo.purpose); + const customBannerImageUrl = customBannerImage?.publicUrl; + const customTopImageUrl = customTopImage?.publicUrl; const handleReplaceBannerImage = async (file) => { handleReplaceImage({ file, - position: BANNER_POSITION.banner, - command, + purpose: banner.purpose, imageInputField: bannerImageInputField, }); }; @@ -132,8 +185,7 @@ const CommandBanner = ({ baseBanner, customBanner, handleReplaceImage, handleDel const handleReplaceTopImage = async (file) => { handleReplaceImage({ file, - position: BANNER_POSITION.topImage, - command, + purpose: logo.purpose, imageInputField: topImageInputField, }); }; @@ -172,7 +224,7 @@ const CommandBanner = ({ baseBanner, customBanner, handleReplaceImage, handleDel }} /> ) : ( - {`${title} + {`${title} )} @@ -207,7 +259,7 @@ const CommandBanner = ({ baseBanner, customBanner, handleReplaceImage, handleDel }} /> ) : ( - {`${title} + {`${title} )} @@ -236,14 +288,14 @@ const CustomizeBanners = () => { const { activeOrg } = useContext(GlobalContext); const { isLoading, isPremiumPlan, isEcosystemPlan, setPaywall, setPaywallMessage, setOnCancel, setCanBeClosed } = useSubscriptionPaywall(); - const { data } = useQuery(GET_ORG_BANNERS, { + const { data } = useQuery(GET_ORG_CUSTOM_ASSETS, { variables: { orgId: activeOrg?.id, }, skip: !activeOrg?.id, }); const { setSnackbarAlertMessage, setSnackbarAlertOpen, setSnackbarAlertSeverity, showError } = useAlerts(); - const [updateBanner] = useMutation(UPDATE_ORG_BANNER); + const [updateBanner] = useMutation(UPSERT_ORG_CUSTOM_BANNER); const [deleteBanner] = useMutation(DELETE_ORG_BANNER); if (isLoading || !(isPremiumPlan || isEcosystemPlan) || EXEMPTED_ORG_IDS.includes(activeOrg?.id)) { @@ -265,9 +317,7 @@ const CustomizeBanners = () => { setPaywall(false); } - const groupedBannerByCommand = groupBy(data?.getOrgBanners, (banner) => banner?.additionalData?.command); - - const handleReplaceImage = async ({ file, position, command, imageInputField }) => { + const handleReplaceImage = async ({ file, purpose, imageInputField }) => { const image = file.target.files[0]; if (!image || !image.type.includes("image")) { @@ -287,14 +337,15 @@ const CustomizeBanners = () => { await updateBanner({ variables: { - orgId: activeOrg?.id, input: { - command, - slug: filename, - position, + orgId: activeOrg?.id, + purpose, + mediaUpload: { + uploadSlug: filename, + }, }, }, - refetchQueries: [GET_ORG_BANNERS], + refetchQueries: [GET_ORG_CUSTOM_ASSETS], onCompleted: () => { imageInputField.current.value = ""; setSnackbarAlertSeverity("success"); @@ -326,7 +377,7 @@ const CustomizeBanners = () => { assetId, }, }, - refetchQueries: [GET_ORG_BANNERS], + refetchQueries: [GET_ORG_CUSTOM_ASSETS], onCompleted, onError: () => { showError("Error deleting image"); @@ -337,13 +388,12 @@ const CustomizeBanners = () => { return ( - {commandBanners.map((banner, index) => { - const customBanner = groupedBannerByCommand[banner.command]; + {commandBanners.map((banner) => { return ( diff --git a/wondrous-bot-admin/src/graphql/fragments/orgAsset.ts b/wondrous-bot-admin/src/graphql/fragments/orgAsset.ts index 9391e93a7..9f6a46a01 100644 --- a/wondrous-bot-admin/src/graphql/fragments/orgAsset.ts +++ b/wondrous-bot-admin/src/graphql/fragments/orgAsset.ts @@ -1,13 +1,14 @@ import { gql } from "@apollo/client"; -export const OrgBannerFragment = gql` - fragment OrgBannerFragment on OrgBanner { +export const OrgAssetFragment = gql` + fragment OrgAssetFragment on OrgAsset { id orgId + purpose + mediaType slug - additionalData { - command - position - } + publicUrl + cdnUrl + removedAt } `; diff --git a/wondrous-bot-admin/src/graphql/mutations/orgAsset.ts b/wondrous-bot-admin/src/graphql/mutations/orgAsset.ts index 8c244e0fd..02bfde00c 100644 --- a/wondrous-bot-admin/src/graphql/mutations/orgAsset.ts +++ b/wondrous-bot-admin/src/graphql/mutations/orgAsset.ts @@ -1,9 +1,10 @@ import { gql } from "@apollo/client"; -export const UPDATE_ORG_BANNER = gql` - mutation updateOrgBanner($orgId: ID!, $input: OrgBannerInput) { - updateOrgBanner(orgId: $orgId, input: $input) { - success +export const UPSERT_ORG_CUSTOM_BANNER = gql` + mutation upsertOrgCustomAsset($input: OrgAssetInput!) { + upsertOrgCustomAsset(input: $input) { + id + orgId } } `; diff --git a/wondrous-bot-admin/src/graphql/queries/orgAsset.ts b/wondrous-bot-admin/src/graphql/queries/orgAsset.ts index fa51ca743..437c9c2c2 100644 --- a/wondrous-bot-admin/src/graphql/queries/orgAsset.ts +++ b/wondrous-bot-admin/src/graphql/queries/orgAsset.ts @@ -1,11 +1,11 @@ import { gql } from "@apollo/client"; -import { OrgBannerFragment } from "graphql/fragments/orgAsset"; +import { OrgAssetFragment } from "graphql/fragments/orgAsset"; -export const GET_ORG_BANNERS = gql` - query getOrgBanners($orgId: ID!) { - getOrgBanners(orgId: $orgId) { - ...OrgBannerFragment +export const GET_ORG_CUSTOM_ASSETS = gql` + query getOrgCustomAssets($orgId: ID!) { + getOrgCustomAssets(orgId: $orgId) { + ...OrgAssetFragment } } - ${OrgBannerFragment} + ${OrgAssetFragment} `; From 59dfccabe50edeead73f730d3cb7aa561d27055d Mon Sep 17 00:00:00 2001 From: juniusfree <8164667+juniusfree@users.noreply.github.com> Date: Tue, 19 Mar 2024 15:04:20 +0800 Subject: [PATCH 38/43] Update delete banner --- .../src/components/Settings/CustomizeBanners/index.tsx | 5 +---- wondrous-bot-admin/src/graphql/mutations/orgAsset.ts | 4 ++-- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx index da04081df..6e163f44a 100644 --- a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx +++ b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx @@ -372,10 +372,7 @@ const CustomizeBanners = () => { } await deleteBanner({ variables: { - orgId: activeOrg?.id, - input: { - assetId, - }, + orgAssetId: assetId, }, refetchQueries: [GET_ORG_CUSTOM_ASSETS], onCompleted, diff --git a/wondrous-bot-admin/src/graphql/mutations/orgAsset.ts b/wondrous-bot-admin/src/graphql/mutations/orgAsset.ts index 02bfde00c..964a900b4 100644 --- a/wondrous-bot-admin/src/graphql/mutations/orgAsset.ts +++ b/wondrous-bot-admin/src/graphql/mutations/orgAsset.ts @@ -10,8 +10,8 @@ export const UPSERT_ORG_CUSTOM_BANNER = gql` `; export const DELETE_ORG_BANNER = gql` - mutation deleteOrgBanner($orgId: ID!, $input: OrgBannerDeleteInput) { - deleteOrgBanner(orgId: $orgId, input: $input) { + mutation deleteOrgCustomAsset($orgAssetId: ID!) { + deleteOrgCustomAsset(orgAssetId: $orgAssetId) { success } } From a729cd43306ea74e4b97b230d2e4c0085d47d383 Mon Sep 17 00:00:00 2001 From: juniusfree <8164667+juniusfree@users.noreply.github.com> Date: Tue, 19 Mar 2024 15:04:44 +0800 Subject: [PATCH 39/43] Remove comments --- .../src/components/Settings/CustomizeBanners/index.tsx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx index 6e163f44a..0958d6f28 100644 --- a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx +++ b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx @@ -46,16 +46,16 @@ const ORG_ASSET_PURPOSE = { startQuestBanner: "start_quest_banner", mySubmissionBanner: "my_submission_banner", storeBanner: "store_banner", - myPurchasesBanner: "my_purchases_banner", // TODO: add to backend - onboardMeBanner: "onboard_me_banner", // TODO: add to backend + myPurchasesBanner: "my_purchases_banner", + onboardMeBanner: "onboard_me_banner", referralBanner: "referral_banner", questLogo: "quest_logo", levelLogo: "level_logo", leaderboardLogo: "leaderboard_logo", mySubmissionLogo: "my_submission_logo", storeLogo: "store_logo", - myPurchasesLogo: "my_purchases_logo", // TODO: add to backend - onboardMeLogo: "onboard_me_logo", // TODO: add to backend + myPurchasesLogo: "my_purchases_logo", + onboardMeLogo: "onboard_me_logo", referralLogo: "referral_logo", }; From 9ae7721cb6730e264cf9c81253cb4fc3d68d469e Mon Sep 17 00:00:00 2001 From: juniusfree <8164667+juniusfree@users.noreply.github.com> Date: Wed, 20 Mar 2024 20:40:58 +0800 Subject: [PATCH 40/43] Update and use the AvatarEditor --- .../ImageUpload/AvatarEditor/index.tsx | 156 +++++++++--------- .../Settings/CustomizeBanners/index.tsx | 155 +++++++++++++---- wondrous-bot-admin/src/types/assets.tsx | 2 +- 3 files changed, 198 insertions(+), 115 deletions(-) diff --git a/wondrous-bot-admin/src/components/ImageUpload/AvatarEditor/index.tsx b/wondrous-bot-admin/src/components/ImageUpload/AvatarEditor/index.tsx index 8c3b27fce..2adc21957 100644 --- a/wondrous-bot-admin/src/components/ImageUpload/AvatarEditor/index.tsx +++ b/wondrous-bot-admin/src/components/ImageUpload/AvatarEditor/index.tsx @@ -1,20 +1,17 @@ -import { useEffect, useRef, useState } from 'react'; - -import max from 'lodash/max'; -import DefaultAvatarEditor from 'react-avatar-editor'; - -import { AvatarEditorTypes } from 'types/assets'; -import { - ButtonIconWrapper, - SharedSecondaryButton, -} from 'components/Shared/styles'; -import Modal from 'components/Shared/Modal'; -import { Box, Grid } from '@mui/material'; -import { pinkColors } from 'utils/theme/colors'; -import ReplaceIcon from 'components/Icons/ReplaceIcon'; -import DeleteIcon from 'components/Icons/Delete'; -import { Label } from 'components/CreateTemplate/styles'; -import { ZoomIn, ZoomOut } from '@mui/icons-material'; +import { useEffect, useRef, useState } from "react"; + +import max from "lodash/max"; +import DefaultAvatarEditor from "react-avatar-editor"; + +import { AvatarEditorTypes } from "types/assets"; +import { ButtonIconWrapper, SharedSecondaryButton } from "components/Shared/styles"; +import Modal from "components/Shared/Modal"; +import { Box, Grid } from "@mui/material"; +import { pinkColors } from "utils/theme/colors"; +import ReplaceIcon from "components/Icons/ReplaceIcon"; +import DeleteIcon from "components/Icons/Delete"; +import { Label } from "components/CreateTemplate/styles"; +import { ZoomIn, ZoomOut } from "@mui/icons-material"; type Props = { originalImage: string | File; @@ -25,7 +22,7 @@ type Props = { clearInput: () => void; imageType: AvatarEditorTypes; title: string; - recommendDateionText: string; + recommendDateionText?: string; }; interface ImageViewerObjectProps { @@ -34,6 +31,29 @@ interface ImageViewerObjectProps { borderRadius: number; } +const IMAGE_VIEWER_SIZE: Record = { + HEADER_IMAGE: { + width: 550, + height: 78, + borderRadius: 0, + }, + ICON_IMAGE: { + width: 250, + height: 250, + borderRadius: 250, + }, + BANNER_IMAGE: { + width: 640, + height: 140, + borderRadius: 0, + }, + BANNER_LOGO_IMAGE: { + width: 400, + height: 400, + borderRadius: 0, + }, +}; + const AvatarEditor = ({ originalImage, open, @@ -50,18 +70,7 @@ const AvatarEditor = ({ const [angle, setAngle] = useState(0); const editorRef = useRef(null); - const imageViewerSize: Record = { - HEADER_IMAGE: { - width: 550, - height: 78, - borderRadius: 0, - }, - ICON_IMAGE: { - width: 250, - height: 250, - borderRadius: 250, - }, - }; + const currentImageViewerSize = IMAGE_VIEWER_SIZE[imageType]; useEffect(() => { setScale(1.0); @@ -83,27 +92,27 @@ const AvatarEditor = ({ // Event handlers const onAction = (action) => { switch (action) { - case 'zoom_in': + case "zoom_in": setScale(scale + defaultZoomScale); break; - case 'zoom_out': + case "zoom_out": setScale(max([scale - defaultZoomScale, maxZoomOut]) || maxZoomOut); break; - case 'rotate_right': + case "rotate_right": setAngle(angle + defaultRotateAngle); break; - case 'rotate_left': + case "rotate_left": setAngle(angle - defaultRotateAngle); break; - case 'crop': + case "crop": break; default: - throw new Error('Unknown action'); + throw new Error("Unknown action"); } }; @@ -125,95 +134,86 @@ const AvatarEditor = ({ const file = new File([blob], `profile-pic.${blob.type.substring(6)}`, { type: blob.type, }); + console.log("fetch file", file); onSave([file]); }); }; + const maxWidth = + currentImageViewerSize.width > currentImageViewerSize.height + ? currentImageViewerSize.width * 1.5 + : currentImageViewerSize.width * 2; + return ( Cancel } - footerRight={ - - Confirm image - - } + footerRight={Confirm image} > - - + + - - - + + + Replace image - + Delete image - - onAction('zoom_in')}> + + onAction("zoom_in")}> - onAction('zoom_out')}> + onAction("zoom_out")}> - - + + ); }; -export const AVATAR_EDITOR_TYPES: Record = - { - HEADER_IMAGE: 'HEADER_IMAGE', - ICON_IMAGE: 'ICON_IMAGE', - }; +export const AVATAR_EDITOR_TYPES: Record = { + HEADER_IMAGE: "HEADER_IMAGE", + ICON_IMAGE: "ICON_IMAGE", + BANNER_IMAGE: "BANNER_IMAGE", + BANNER_LOGO_IMAGE: "BANNER_LOGO_IMAGE", +}; export default AvatarEditor; diff --git a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx index 0958d6f28..8b7fc4483 100644 --- a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx +++ b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx @@ -1,6 +1,6 @@ import { Box } from "@mui/material"; import DeleteIcon from "components/Icons/Delete"; -import { useContext, useRef } from "react"; +import { useContext, useRef, useState } from "react"; import { ButtonIconWrapper } from "components/Shared/styles"; import ReplaceIcon from "components/Icons/ReplaceIcon"; import { @@ -36,6 +36,7 @@ import { GET_ORG_CUSTOM_ASSETS } from "graphql/queries/orgAsset"; import SafeImage from "components/SafeImage"; import useAlerts, { useSubscriptionPaywall } from "utils/hooks"; import { useNavigate } from "react-router-dom"; +import AvatarEditor, { AVATAR_EDITOR_TYPES } from "components/ImageUpload/AvatarEditor"; const EXEMPTED_ORG_IDS = ["911445364593262592", "844677430694510634", "1192224585215639572"]; @@ -158,7 +159,15 @@ const commandBanners: { }, ]; -const CommandBanner = ({ baseBanner, customBanner, handleReplaceImage, handleDeleteImage }) => { +const CommandBanner = ({ + baseBanner, + customBanner, + handleReplaceImage, + handleDeleteImage, + setSelectedAvatarProps, + setTempImage, + handleResetAvatarImage, +}) => { const { title, tooltip, banner, logo } = baseBanner; const bannerImageInputField = useRef(null); const topImageInputField = useRef(null); @@ -168,13 +177,6 @@ const CommandBanner = ({ baseBanner, customBanner, handleReplaceImage, handleDel const customBannerImageUrl = customBannerImage?.publicUrl; const customTopImageUrl = customTopImage?.publicUrl; - const handleReplaceBannerImage = async (file) => { - handleReplaceImage({ - file, - purpose: banner.purpose, - imageInputField: bannerImageInputField, - }); - }; const handleDeleteBannerImage = async () => { handleDeleteImage({ assetId: customBannerImage?.id, @@ -182,13 +184,6 @@ const CommandBanner = ({ baseBanner, customBanner, handleReplaceImage, handleDel }); }; - const handleReplaceTopImage = async (file) => { - handleReplaceImage({ - file, - purpose: logo.purpose, - imageInputField: topImageInputField, - }); - }; const handleDeleteTopImage = async () => { handleDeleteImage({ assetId: customTopImage?.id, @@ -196,6 +191,65 @@ const CommandBanner = ({ baseBanner, customBanner, handleReplaceImage, handleDel }); }; + const handleImageReplace = async ({ file, replaceImageCallback }) => { + if (!file) { + handleResetAvatarImage(); + return; + } + replaceImageCallback(); + handleResetAvatarImage(); + }; + + const handleSetBannerImageAvatarProps = () => { + if (bannerImageInputField.current.value === "") { + bannerImageInputField.current.click(); + return; + } + setSelectedAvatarProps({ + originalImage: customBannerImageUrl || banner.image, + open: true, + openSelectFile: () => bannerImageInputField.current.click(), + imageType: AVATAR_EDITOR_TYPES.BANNER_IMAGE, + onSave: async (file: File) => + handleImageReplace({ + file, + replaceImageCallback: async () => + await handleReplaceImage({ file, purpose: banner.purpose, imageInputField: bannerImageInputField }), + }), + onCancel: () => (bannerImageInputField.current.value = ""), + }); + }; + + const handleBannerImageOnChange = () => { + handleSetBannerImageAvatarProps(); + setTempImage(bannerImageInputField.current.files[0]); + }; + + const handleSetTopImageAvatarProps = () => { + if (topImageInputField.current.value === "") { + topImageInputField.current.click(); + return; + } + setSelectedAvatarProps({ + originalImage: customTopImageUrl || logo.image, + open: true, + openSelectFile: () => topImageInputField.current.click(), + imageType: AVATAR_EDITOR_TYPES.BANNER_LOGO_IMAGE, + onSave: async (file: File) => + handleReplaceImage({ + file, + replaceImageCallback: async () => + await handleReplaceImage({ file, purpose: logo.purpose, imageInputField: topImageInputField }), + }), + onCancel: () => (topImageInputField.current.value = ""), + }); + }; + + const handleSetTopImageOnChange = () => { + handleSetTopImageAvatarProps(); + setTempImage(topImageInputField.current.files[0]); + }; + return ( @@ -230,11 +284,11 @@ const CommandBanner = ({ baseBanner, customBanner, handleReplaceImage, handleDel Optimal size: 640 x 140px - bannerImageInputField.current.click()}> + - + @@ -265,11 +319,11 @@ const CommandBanner = ({ baseBanner, customBanner, handleReplaceImage, handleDel 400 x 400px - topImageInputField.current.click()}> + - + @@ -298,6 +352,19 @@ const CustomizeBanners = () => { const [updateBanner] = useMutation(UPSERT_ORG_CUSTOM_BANNER); const [deleteBanner] = useMutation(DELETE_ORG_BANNER); + const defaultAvatarProps = { + originalImage: null, + open: false, + onCancel: () => {}, + }; + const [selectedAvatarProps, setSelectedAvatarProps] = useState(defaultAvatarProps); + const [tempImage, setTempImage] = useState(null); + const handleResetAvatarImage = () => { + selectedAvatarProps?.onCancel(); + setTempImage(null); + setSelectedAvatarProps(defaultAvatarProps); + }; + if (isLoading || !(isPremiumPlan || isEcosystemPlan) || EXEMPTED_ORG_IDS.includes(activeOrg?.id)) { setOnCancel(() => { return () => { @@ -318,7 +385,7 @@ const CustomizeBanners = () => { } const handleReplaceImage = async ({ file, purpose, imageInputField }) => { - const image = file.target.files[0]; + const image = file[0]; if (!image || !image.type.includes("image")) { showError("Invalid file type"); @@ -383,21 +450,37 @@ const CustomizeBanners = () => { }; return ( - - - {commandBanners.map((banner) => { - return ( - - ); - })} - - + <> + {}} + clearInput={() => {}} + openSelectFile={() => {}} + imageType={AVATAR_EDITOR_TYPES.BANNER_IMAGE} + title={"Upload Image"} + {...selectedAvatarProps} + originalImage={tempImage || selectedAvatarProps?.originalImage} + onCancel={handleResetAvatarImage} + /> + + + {commandBanners.map((banner) => { + return ( + + ); + })} + + + ); }; diff --git a/wondrous-bot-admin/src/types/assets.tsx b/wondrous-bot-admin/src/types/assets.tsx index ce0e33eda..94b037f10 100644 --- a/wondrous-bot-admin/src/types/assets.tsx +++ b/wondrous-bot-admin/src/types/assets.tsx @@ -1 +1 @@ -export type AvatarEditorTypes = 'HEADER_IMAGE' | 'ICON_IMAGE'; +export type AvatarEditorTypes = "HEADER_IMAGE" | "ICON_IMAGE" | "BANNER_IMAGE" | "BANNER_LOGO_IMAGE"; From b421e063a30bcec0fe28670422042d7fefb5e283 Mon Sep 17 00:00:00 2001 From: juniusfree <8164667+juniusfree@users.noreply.github.com> Date: Wed, 20 Mar 2024 21:14:13 +0800 Subject: [PATCH 41/43] Fixes --- .../Settings/CustomizeBanners/index.tsx | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx index 8b7fc4483..0b0d1e07b 100644 --- a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx +++ b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx @@ -220,12 +220,12 @@ const CommandBanner = ({ }); }; - const handleBannerImageOnChange = () => { + const handleBannerImageOnChange = (e) => { + setTempImage(e.target.files[0]); handleSetBannerImageAvatarProps(); - setTempImage(bannerImageInputField.current.files[0]); }; - const handleSetTopImageAvatarProps = () => { + const handleSetTopImageAvatarProps = (logo) => { if (topImageInputField.current.value === "") { topImageInputField.current.click(); return; @@ -236,7 +236,7 @@ const CommandBanner = ({ openSelectFile: () => topImageInputField.current.click(), imageType: AVATAR_EDITOR_TYPES.BANNER_LOGO_IMAGE, onSave: async (file: File) => - handleReplaceImage({ + handleImageReplace({ file, replaceImageCallback: async () => await handleReplaceImage({ file, purpose: logo.purpose, imageInputField: topImageInputField }), @@ -245,9 +245,9 @@ const CommandBanner = ({ }); }; - const handleSetTopImageOnChange = () => { - handleSetTopImageAvatarProps(); - setTempImage(topImageInputField.current.files[0]); + const handleSetTopImageOnChange = (e) => { + setTempImage(e.target.files[0]); + handleSetTopImageAvatarProps(logo); }; return ( @@ -385,6 +385,7 @@ const CustomizeBanners = () => { } const handleReplaceImage = async ({ file, purpose, imageInputField }) => { + console.log("purpose", purpose); const image = file[0]; if (!image || !image.type.includes("image")) { @@ -454,13 +455,13 @@ const CustomizeBanners = () => { {}} - clearInput={() => {}} openSelectFile={() => {}} imageType={AVATAR_EDITOR_TYPES.BANNER_IMAGE} title={"Upload Image"} {...selectedAvatarProps} originalImage={tempImage || selectedAvatarProps?.originalImage} onCancel={handleResetAvatarImage} + clearInput={() => setSelectedAvatarProps(selectedAvatarProps)} /> From 2008edec1cdb3259cd26d832de034e8ab177b7f6 Mon Sep 17 00:00:00 2001 From: juniusfree <8164667+juniusfree@users.noreply.github.com> Date: Wed, 20 Mar 2024 21:19:43 +0800 Subject: [PATCH 42/43] Add gap to modal styling --- .../src/components/ImageUpload/AvatarEditor/index.tsx | 3 +++ wondrous-bot-admin/src/components/Shared/Modal/index.tsx | 9 ++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/wondrous-bot-admin/src/components/ImageUpload/AvatarEditor/index.tsx b/wondrous-bot-admin/src/components/ImageUpload/AvatarEditor/index.tsx index 2adc21957..e4e3752f1 100644 --- a/wondrous-bot-admin/src/components/ImageUpload/AvatarEditor/index.tsx +++ b/wondrous-bot-admin/src/components/ImageUpload/AvatarEditor/index.tsx @@ -156,6 +156,9 @@ const AvatarEditor = ({ } footerRight={Confirm image} + modalFooterStyle={{ + gap: "8px", + }} > diff --git a/wondrous-bot-admin/src/components/Shared/Modal/index.tsx b/wondrous-bot-admin/src/components/Shared/Modal/index.tsx index 17035d262..e48559bcb 100644 --- a/wondrous-bot-admin/src/components/Shared/Modal/index.tsx +++ b/wondrous-bot-admin/src/components/Shared/Modal/index.tsx @@ -29,6 +29,7 @@ interface IModalProps { dialogComponentProps?: any; modalFooterStyle?: { padding?: string; + gap?: string; }; modalTitleStyle?: any; closeButtonStyle?: any; @@ -66,7 +67,13 @@ const Modal = ({ {!noHeader && ( {!!title && {title}} - {onClose && } + {onClose && ( + + )} )} From ba3bd083ea64c8615e203f157e7bf9ca06395065 Mon Sep 17 00:00:00 2001 From: juniusfree <8164667+juniusfree@users.noreply.github.com> Date: Wed, 20 Mar 2024 21:22:46 +0800 Subject: [PATCH 43/43] Refactor naming --- .../src/components/Settings/CustomizeBanners/index.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx index 0b0d1e07b..ff2335b7a 100644 --- a/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx +++ b/wondrous-bot-admin/src/components/Settings/CustomizeBanners/index.tsx @@ -191,7 +191,7 @@ const CommandBanner = ({ }); }; - const handleImageReplace = async ({ file, replaceImageCallback }) => { + const handleOnSave = async ({ file, replaceImageCallback }) => { if (!file) { handleResetAvatarImage(); return; @@ -211,7 +211,7 @@ const CommandBanner = ({ openSelectFile: () => bannerImageInputField.current.click(), imageType: AVATAR_EDITOR_TYPES.BANNER_IMAGE, onSave: async (file: File) => - handleImageReplace({ + handleOnSave({ file, replaceImageCallback: async () => await handleReplaceImage({ file, purpose: banner.purpose, imageInputField: bannerImageInputField }), @@ -236,7 +236,7 @@ const CommandBanner = ({ openSelectFile: () => topImageInputField.current.click(), imageType: AVATAR_EDITOR_TYPES.BANNER_LOGO_IMAGE, onSave: async (file: File) => - handleImageReplace({ + handleOnSave({ file, replaceImageCallback: async () => await handleReplaceImage({ file, purpose: logo.purpose, imageInputField: topImageInputField }),