From 2d809360b215ed901f909b3df27fbd698308c431 Mon Sep 17 00:00:00 2001 From: Malik Zulqurnain Date: Thu, 8 Feb 2024 22:22:14 +0500 Subject: [PATCH 1/2] Added valentine growl --- .../client/scripts/state/ui/growl/growl.ts | 24 +++++ .../client/scripts/state/ui/growl/index.ts | 2 + .../client/scripts/views/Sublayout.tsx | 2 + .../ValentineGrowl/ValentineGrowl.scss | 78 +++++++++++++++ .../ValentineGrowl/ValentineGrowl.tsx | 93 ++++++++++++++++++ .../views/components/ValentineGrowl/index.ts | 1 + .../static/img/valentineGrowlImage.jpeg | Bin 0 -> 26018 bytes 7 files changed, 200 insertions(+) create mode 100644 packages/commonwealth/client/scripts/state/ui/growl/growl.ts create mode 100644 packages/commonwealth/client/scripts/state/ui/growl/index.ts create mode 100644 packages/commonwealth/client/scripts/views/components/ValentineGrowl/ValentineGrowl.scss create mode 100644 packages/commonwealth/client/scripts/views/components/ValentineGrowl/ValentineGrowl.tsx create mode 100644 packages/commonwealth/client/scripts/views/components/ValentineGrowl/index.ts create mode 100644 packages/commonwealth/static/img/valentineGrowlImage.jpeg diff --git a/packages/commonwealth/client/scripts/state/ui/growl/growl.ts b/packages/commonwealth/client/scripts/state/ui/growl/growl.ts new file mode 100644 index 00000000000..d4464cdab2b --- /dev/null +++ b/packages/commonwealth/client/scripts/state/ui/growl/growl.ts @@ -0,0 +1,24 @@ +import { createBoundedUseStore } from 'state/ui/utils'; +import { devtools } from 'zustand/middleware'; +import { createStore } from 'zustand/vanilla'; + +interface GrowlStore { + isGrowlHidden: boolean; + setIsGrowlHidden: (isGrowlHidden: boolean) => void; +} + +const growlStore = createStore()( + devtools( + (set) => ({ + isGrowlHidden: false, + setIsGrowlHidden: (isGrowlHidden: boolean) => set({ isGrowlHidden }), + }), + { + name: 'growl', + }, + ), +); + +const useGrowlStore = createBoundedUseStore(growlStore); + +export default useGrowlStore; diff --git a/packages/commonwealth/client/scripts/state/ui/growl/index.ts b/packages/commonwealth/client/scripts/state/ui/growl/index.ts new file mode 100644 index 00000000000..177f8dc0ed3 --- /dev/null +++ b/packages/commonwealth/client/scripts/state/ui/growl/index.ts @@ -0,0 +1,2 @@ +import useGrowlStore from './growl'; +export default useGrowlStore; diff --git a/packages/commonwealth/client/scripts/views/Sublayout.tsx b/packages/commonwealth/client/scripts/views/Sublayout.tsx index cce42c513a2..7922121cfbd 100644 --- a/packages/commonwealth/client/scripts/views/Sublayout.tsx +++ b/packages/commonwealth/client/scripts/views/Sublayout.tsx @@ -13,6 +13,7 @@ import { SublayoutBanners } from './SublayoutBanners'; import { SublayoutHeader } from './SublayoutHeader'; import { AdminOnboardingSlider } from './components/AdminOnboardingSlider'; import { Breadcrumbs } from './components/Breadcrumbs'; +import { ValentineGrowl } from './components/ValentineGrowl'; import CollapsableSidebarButton from './components/sidebar/CollapsableSidebarButton'; type SublayoutProps = { @@ -104,6 +105,7 @@ const Sublayout = ({ )} + ); diff --git a/packages/commonwealth/client/scripts/views/components/ValentineGrowl/ValentineGrowl.scss b/packages/commonwealth/client/scripts/views/components/ValentineGrowl/ValentineGrowl.scss new file mode 100644 index 00000000000..4b8bebea0c7 --- /dev/null +++ b/packages/commonwealth/client/scripts/views/components/ValentineGrowl/ValentineGrowl.scss @@ -0,0 +1,78 @@ +@import '../../../../styles/shared'; + +.ValentineGrowl { + display: flex; + flex-direction: column; + background-color: $white; + justify-content: center; + align-items: center; + cursor: pointer; + border-bottom-left-radius: 0.3125rem; + border-bottom-right-radius: 0.3125rem; + border-top: 1px solid rgba(0, 0, 0, 0.2); + box-shadow: 0px 4px 4px 0px rgba(0, 0, 0, 0.5); + + .closeButton { + align-self: flex-end; + cursor: pointer; + position: absolute; + color: $black; + top: 1rem; + right: 0rem; + z-index: 2; + + &:hover { + color: $neutral-400; + } + } + + .img { + width: 320px; + height: 192px; + margin-bottom: -25px; + cursor: default; + border-top-left-radius: 0.3125rem; + border-top-right-radius: 0.3125rem; + overflow: hidden; + z-index: 1; + } + + .container { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + padding: 20px; + width: 100%; + max-width: 400px; + text-align: center; + gap: 1rem; + cursor: default; + + .subtitle-text { + margin-top: -12px; + } + + .body { + color: $neutral-600; + letter-spacing: 1px; + } + } + + .icon { + align-self: center; + padding-left: 6px; + } + + .checkboxContainer { + display: flex; + align-items: center; + justify-content: center; + padding-bottom: 1rem; + + .checkbox { + cursor: pointer; + color: $neutral-400; + } + } +} diff --git a/packages/commonwealth/client/scripts/views/components/ValentineGrowl/ValentineGrowl.tsx b/packages/commonwealth/client/scripts/views/components/ValentineGrowl/ValentineGrowl.tsx new file mode 100644 index 00000000000..6d764711eb3 --- /dev/null +++ b/packages/commonwealth/client/scripts/views/components/ValentineGrowl/ValentineGrowl.tsx @@ -0,0 +1,93 @@ +import React, { useState } from 'react'; +import useGrowlStore from 'state/ui/growl'; +import { CWCheckbox } from 'views/components/component_kit/cw_checkbox'; +import { CWGrowl } from 'views/components/component_kit/cw_growl'; +import { CWIconButton } from 'views/components/component_kit/cw_icon_button'; +import { CWText } from 'views/components/component_kit/cw_text'; +import { CWButton } from '../component_kit/new_designs/cw_button'; +import './ValentineGrowl.scss'; + +const LOCALSTORAGE_VALENTINE_GROWL_KEY = 'valentineGrowlHidden'; + +const ValentineGrowl = () => { + const { setIsGrowlHidden, isGrowlHidden } = useGrowlStore(); + + const [shouldHideGrowlPermanently, setShouldHideGrowlPermanently] = + useState(false); + const [isDisabled, setIsDisabled] = useState( + localStorage.getItem(LOCALSTORAGE_VALENTINE_GROWL_KEY) === 'true' || + isGrowlHidden, + ); + + const openInviteInCalender = () => { + const link = document.createElement('a'); + link.href = 'webcal://static/invites/common-community-call.ics'; + document.body.appendChild(link); + link.click(); + document.body.removeChild(link); + }; + + const handleExit = () => { + setIsDisabled(true); + setIsGrowlHidden(true); + + if (shouldHideGrowlPermanently) { + localStorage.setItem(LOCALSTORAGE_VALENTINE_GROWL_KEY, 'true'); + } + }; + + return ( + +
+ + +
+ + Join the community call + + + and receive a POAP 🎁 + + + Get ready for an exclusive announcement from Common! +
+ Join us on February 14th at 11am EST for something special just for + you! +
+ +
+
+ + setShouldHideGrowlPermanently(!shouldHideGrowlPermanently) + } + label="Please don't show this again" + labelClassName="checkbox" + /> +
+
+
+ ); +}; + +export default ValentineGrowl; diff --git a/packages/commonwealth/client/scripts/views/components/ValentineGrowl/index.ts b/packages/commonwealth/client/scripts/views/components/ValentineGrowl/index.ts new file mode 100644 index 00000000000..5b64f5715c5 --- /dev/null +++ b/packages/commonwealth/client/scripts/views/components/ValentineGrowl/index.ts @@ -0,0 +1 @@ +export { default as ValentineGrowl } from './ValentineGrowl'; diff --git a/packages/commonwealth/static/img/valentineGrowlImage.jpeg b/packages/commonwealth/static/img/valentineGrowlImage.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..9e5890270d52464ad6a6ba3cd638a41369e61988 GIT binary patch literal 26018 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 literal 0 HcmV?d00001 From 41b7503976a7ba1822c8bce03e9d5c16f240d4be Mon Sep 17 00:00:00 2001 From: Malik Zulqurnain Date: Thu, 8 Feb 2024 22:39:25 +0500 Subject: [PATCH 2/2] Added invite info --- .../ValentineGrowl/ValentineGrowl.tsx | 2 +- .../static/invites/common-community-call.ics | 59 +++++++++++++++++++ 2 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 packages/commonwealth/static/invites/common-community-call.ics diff --git a/packages/commonwealth/client/scripts/views/components/ValentineGrowl/ValentineGrowl.tsx b/packages/commonwealth/client/scripts/views/components/ValentineGrowl/ValentineGrowl.tsx index 6d764711eb3..de95a394c9d 100644 --- a/packages/commonwealth/client/scripts/views/components/ValentineGrowl/ValentineGrowl.tsx +++ b/packages/commonwealth/client/scripts/views/components/ValentineGrowl/ValentineGrowl.tsx @@ -21,7 +21,7 @@ const ValentineGrowl = () => { const openInviteInCalender = () => { const link = document.createElement('a'); - link.href = 'webcal://static/invites/common-community-call.ics'; + link.href = `webcal://${window.location.host}/static/invites/common-community-call.ics`; document.body.appendChild(link); link.click(); document.body.removeChild(link); diff --git a/packages/commonwealth/static/invites/common-community-call.ics b/packages/commonwealth/static/invites/common-community-call.ics new file mode 100644 index 00000000000..163bee1b24a --- /dev/null +++ b/packages/commonwealth/static/invites/common-community-call.ics @@ -0,0 +1,59 @@ +BEGIN:VCALENDAR +PRODID:-//Google Inc//Google Calendar 70.9054//EN +VERSION:2.0 +CALSCALE:GREGORIAN +METHOD:REQUEST +BEGIN:VTIMEZONE +TZID:America/New_York +X-LIC-LOCATION:America/New_York +BEGIN:DAYLIGHT +TZOFFSETFROM:-0500 +TZOFFSETTO:-0400 +TZNAME:EDT +DTSTART:19700308T020000 +RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU +END:DAYLIGHT +BEGIN:STANDARD +TZOFFSETFROM:-0400 +TZOFFSETTO:-0500 +TZNAME:EST +DTSTART:19701101T020000 +RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU +END:STANDARD +END:VTIMEZONE +BEGIN:VEVENT +DTSTART;TZID=America/New_York:20240214T110000 +DTEND;TZID=America/New_York:20240214T120000 +RRULE:FREQ=MONTHLY;BYDAY=2WE +DTSTAMP:20240207T200456Z +ORGANIZER;CN=Common Community Calls:mailto:c_296bb058b193669bbe90e7f8ed308f + b12d070990c8891ec9dbbc49d17d3ca234@group.calendar.google.com +UID:3uu9a20asj3b5mcr4kel57jj5b@google.com +ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP= + TRUE;CN=rhys@common.xyz;X-NUM-GUESTS=0:mailto:rhys@common.xyz +X-GOOGLE-CONFERENCE:https://meet.google.com/djv-pydz-vzv +X-MICROSOFT-CDO-OWNERAPPTID:1203157814 +CLASS:PUBLIC +CREATED:20240207T181107Z +DESCRIPTION:Valentines Day'\;s Community Call is going to be stacked! We + '\;ve got a bunch of special announcements that'\;ve been in the work + s for awhile including: 
  • An announcement of a new flagship featu + re on Common
  • Rewards for Common'\;s users (you)
  • A presen + tation from Common'\;s CEO on what to expect from Common in 2024
  • &\; lots of dots (❌🐮)

The call will be hosted in the Comm + on Discord server Stage. Looking forward to seeing you there!\n\n-::~:~::~: + ~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~::~:~: + :-\nJoin with Google Meet: https://meet.google.com/djv-pydz-vzv\nOr dial: ( + CA) +1 226-314-7973 PIN: 897489302#\nMore phone numbers: https://tel.meet/d + jv-pydz-vzv?pin=2934173653075&hs=7\n\nLearn more about Meet at: https://sup + port.google.com/a/users/answer/9282720\n\nPlease do not edit this section.\ + n-::~:~::~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~: + ~:~:~::~:~::- +LAST-MODIFIED:20240207T200453Z +LOCATION:https://discord.com/invite/t9XscHdZrG +SEQUENCE:2 +STATUS:CONFIRMED +SUMMARY:Common Community Call +TRANSP:OPAQUE +END:VEVENT +END:VCALENDAR