From b47321e7fada82b105bb7d95a1c8a50564e5920e Mon Sep 17 00:00:00 2001 From: Nando <24811313+fzavalia@users.noreply.github.com> Date: Mon, 9 Oct 2023 12:01:51 -0300 Subject: [PATCH 1/6] feat: Add worlds for ens owners announcement modal --- ...dsForENSOwnersAnnouncementModal.module.css | 35 +++++++++++++ .../WorldsForENSOwnersAnnouncementModal.tsx | 49 +++++++++++++++++++ ...rldsForENSOwnersAnnouncementModal.types.ts | 3 ++ .../images/ens.svg | 31 ++++++++++++ .../index.ts | 3 ++ .../utils.ts | 13 +++++ src/components/Modals/index.ts | 1 + 7 files changed, 135 insertions(+) create mode 100644 src/components/Modals/WorldsForENSOwnersAnnouncementModal/WorldsForENSOwnersAnnouncementModal.module.css create mode 100644 src/components/Modals/WorldsForENSOwnersAnnouncementModal/WorldsForENSOwnersAnnouncementModal.tsx create mode 100644 src/components/Modals/WorldsForENSOwnersAnnouncementModal/WorldsForENSOwnersAnnouncementModal.types.ts create mode 100644 src/components/Modals/WorldsForENSOwnersAnnouncementModal/images/ens.svg create mode 100644 src/components/Modals/WorldsForENSOwnersAnnouncementModal/index.ts create mode 100644 src/components/Modals/WorldsForENSOwnersAnnouncementModal/utils.ts diff --git a/src/components/Modals/WorldsForENSOwnersAnnouncementModal/WorldsForENSOwnersAnnouncementModal.module.css b/src/components/Modals/WorldsForENSOwnersAnnouncementModal/WorldsForENSOwnersAnnouncementModal.module.css new file mode 100644 index 0000000000..efa6193232 --- /dev/null +++ b/src/components/Modals/WorldsForENSOwnersAnnouncementModal/WorldsForENSOwnersAnnouncementModal.module.css @@ -0,0 +1,35 @@ +.title { + font-size: 20px; + font-weight: 700; + text-align: center; + max-width: 400px; +} + +.img { + text-align: center; + margin-bottom: 32px; +} + +.description { + text-align: center; + display: flex; + flex-direction: column; + gap: 32px; + margin: auto; + font-size: 14px; +} + +.description .bold { + font-weight: 700; +} + +.actions { + display: flex; + flex-direction: column; + gap: 14px; + margin-top: 32px !important; +} + +.actions :global(.ui.button) { + margin-left: 0px !important; +} diff --git a/src/components/Modals/WorldsForENSOwnersAnnouncementModal/WorldsForENSOwnersAnnouncementModal.tsx b/src/components/Modals/WorldsForENSOwnersAnnouncementModal/WorldsForENSOwnersAnnouncementModal.tsx new file mode 100644 index 0000000000..fec7389985 --- /dev/null +++ b/src/components/Modals/WorldsForENSOwnersAnnouncementModal/WorldsForENSOwnersAnnouncementModal.tsx @@ -0,0 +1,49 @@ +import React, { useCallback } from 'react' +import { Button, ModalActions, ModalContent, ModalNavigation } from 'decentraland-ui' +import Modal from 'decentraland-dapps/dist/containers/Modal' +import { t } from 'decentraland-dapps/dist/modules/translation/utils' +import { Props } from './WorldsForENSOwnersAnnouncementModal.types' +import { persistCanOpenWorldsForENSOwnersAnnouncementModal } from './utils' +import ensImg from './images/ens.svg' +import styles from './WorldsForENSOwnersAnnouncementModal.module.css' + +export const DOCUMENTATION_URL = 'https://docs.decentraland.org/creator/worlds/about/' + +const WorldsForENSOwnersAnnouncementModal: React.FC = ({ name, onClose }) => { + const handleOnClose = useCallback(() => { + persistCanOpenWorldsForENSOwnersAnnouncementModal(false) + onClose() + }, [onClose]) + + return ( + + {t('worlds_for_ens_owners_announcement_modal.title')}} + onClose={handleOnClose} + /> + +
+ ens +
+
+
{t('worlds_for_ens_owners_announcement_modal.description_ens')}
+
+ {t('worlds_for_ens_owners_announcement_modal.description_dcl', { + b: (text: string) => {text} + })} +
+
+
+ + + + +
+ ) +} + +export default React.memo(WorldsForENSOwnersAnnouncementModal) diff --git a/src/components/Modals/WorldsForENSOwnersAnnouncementModal/WorldsForENSOwnersAnnouncementModal.types.ts b/src/components/Modals/WorldsForENSOwnersAnnouncementModal/WorldsForENSOwnersAnnouncementModal.types.ts new file mode 100644 index 0000000000..485ae97016 --- /dev/null +++ b/src/components/Modals/WorldsForENSOwnersAnnouncementModal/WorldsForENSOwnersAnnouncementModal.types.ts @@ -0,0 +1,3 @@ +import { ModalProps } from 'decentraland-dapps/dist/providers/ModalProvider/ModalProvider.types' + +export type Props = ModalProps diff --git a/src/components/Modals/WorldsForENSOwnersAnnouncementModal/images/ens.svg b/src/components/Modals/WorldsForENSOwnersAnnouncementModal/images/ens.svg new file mode 100644 index 0000000000..3a19504974 --- /dev/null +++ b/src/components/Modals/WorldsForENSOwnersAnnouncementModal/images/ens.svg @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/components/Modals/WorldsForENSOwnersAnnouncementModal/index.ts b/src/components/Modals/WorldsForENSOwnersAnnouncementModal/index.ts new file mode 100644 index 0000000000..b5e6350d74 --- /dev/null +++ b/src/components/Modals/WorldsForENSOwnersAnnouncementModal/index.ts @@ -0,0 +1,3 @@ +import WorldsForENSOwnersAnnouncementModal from './WorldsForENSOwnersAnnouncementModal' + +export default WorldsForENSOwnersAnnouncementModal diff --git a/src/components/Modals/WorldsForENSOwnersAnnouncementModal/utils.ts b/src/components/Modals/WorldsForENSOwnersAnnouncementModal/utils.ts new file mode 100644 index 0000000000..468d70c63a --- /dev/null +++ b/src/components/Modals/WorldsForENSOwnersAnnouncementModal/utils.ts @@ -0,0 +1,13 @@ +import { getLocalStorage } from 'decentraland-dapps/dist/lib/localStorage' + +export const LOCALSTORAGE_WORLDS_FOR_ENS_OWNERS_ANNOUCEMENT = 'builder-worlds-for-ens-owners-announcement' + +export const persistCanOpenWorldsForENSOwnersAnnouncementModal = (canOpen: boolean) => { + const ls = getLocalStorage() + ls.setItem(LOCALSTORAGE_WORLDS_FOR_ENS_OWNERS_ANNOUCEMENT, canOpen ? undefined : '1') +} + +export const canOpenWorldsForENSOwnersAnnouncementModal = () => { + const ls = getLocalStorage() + return ls.getItem(LOCALSTORAGE_WORLDS_FOR_ENS_OWNERS_ANNOUCEMENT) !== '1' +} diff --git a/src/components/Modals/index.ts b/src/components/Modals/index.ts index 7407ef78cb..47b3fa5747 100644 --- a/src/components/Modals/index.ts +++ b/src/components/Modals/index.ts @@ -49,3 +49,4 @@ export { default as SceneCreationModal } from './SceneCreationModal' export { default as EditVideoModal } from './EditVideoModal' export { default as EmotesV2AnnouncementModal } from './EmotesV2AnnouncementModal' export { default as WorldsYourStorageModal } from './WorldsYourStorageModal' +export { default as WorldsForENSOwnersAnnouncementModal } from './WorldsForENSOwnersAnnouncementModal' From 6a6ffe7d4e3512fda6200746bafe606ff1f4c107 Mon Sep 17 00:00:00 2001 From: Nando <24811313+fzavalia@users.noreply.github.com> Date: Mon, 9 Oct 2023 12:02:44 -0300 Subject: [PATCH 2/6] feat: Open announcement modal on scenes page --- .../ScenesPage/ScenesPage.container.ts | 4 +++- src/components/ScenesPage/ScenesPage.tsx | 21 ++++++++++++++++++- src/components/ScenesPage/ScenesPage.types.ts | 5 +++-- 3 files changed, 26 insertions(+), 4 deletions(-) diff --git a/src/components/ScenesPage/ScenesPage.container.ts b/src/components/ScenesPage/ScenesPage.container.ts index 2dcb3ef501..721aa6d262 100644 --- a/src/components/ScenesPage/ScenesPage.container.ts +++ b/src/components/ScenesPage/ScenesPage.container.ts @@ -9,6 +9,7 @@ import { isLoggingIn } from 'modules/identity/selectors' import { getProjects, getPage, getSortBy, getTotalPages, didCreate } from 'modules/ui/dashboard/selectors' import { loadPoolsRequest } from 'modules/pool/actions' import { getPoolList } from 'modules/pool/selectors' +import { getIsWorldsForEnsOwnersEnabled } from 'modules/features/selectors' import { MapStateProps, MapDispatchProps, MapDispatch } from './ScenesPage.types' import ScenesPage from './ScenesPage' @@ -20,7 +21,8 @@ const mapState = (state: RootState): MapStateProps => ({ sortBy: getSortBy(state), totalPages: getTotalPages(state), didCreate: didCreate(state), - poolList: getPoolList(state) + poolList: getPoolList(state), + isWorldsForENSOwnersEnabled: getIsWorldsForEnsOwnersEnabled(state) }) const mapDispatch = (dispatch: MapDispatch): MapDispatchProps => ({ diff --git a/src/components/ScenesPage/ScenesPage.tsx b/src/components/ScenesPage/ScenesPage.tsx index b66e27e715..3167337fa7 100644 --- a/src/components/ScenesPage/ScenesPage.tsx +++ b/src/components/ScenesPage/ScenesPage.tsx @@ -23,18 +23,37 @@ import SyncToast from 'components/SyncToast' import { SortBy } from 'modules/ui/dashboard/types' import { NavigationTab } from 'components/Navigation/Navigation.types' import SceneCreationSelector from 'components/SceneCreationSelector' +import { canOpenWorldsForENSOwnersAnnouncementModal } from 'components/Modals/WorldsForENSOwnersAnnouncementModal/utils' import { locations } from 'routing/locations' import { PaginationOptions } from 'routing/utils' import { Props, DefaultProps } from './ScenesPage.types' import './ScenesPage.css' const ScenesPage: React.FC = props => { - const { page, poolList, projects, sortBy, totalPages, isFetching, isLoggingIn, onLoadFromScenePool, onOpenModal, onPageChange } = props + const { + page, + poolList, + projects, + sortBy, + totalPages, + isFetching, + isLoggingIn, + isWorldsForENSOwnersEnabled, + onLoadFromScenePool, + onOpenModal, + onPageChange + } = props useEffect(() => { onLoadFromScenePool({ sortBy: 'updated_at', sortOrder: 'desc' }) }, [onLoadFromScenePool, onOpenModal]) + useEffect(() => { + if (isWorldsForENSOwnersEnabled && canOpenWorldsForENSOwnersAnnouncementModal()) { + onOpenModal('WorldsForENSOwnersAnnouncementModal') + } + }, [isWorldsForENSOwnersEnabled, onOpenModal]) + const handleOpenImportModal = useCallback(() => { onOpenModal('ImportModal') }, [onOpenModal]) diff --git a/src/components/ScenesPage/ScenesPage.types.ts b/src/components/ScenesPage/ScenesPage.types.ts index be13a27b80..7f94ab77f2 100644 --- a/src/components/ScenesPage/ScenesPage.types.ts +++ b/src/components/ScenesPage/ScenesPage.types.ts @@ -19,15 +19,16 @@ export type Props = DefaultProps & { page: number sortBy: SortBy totalPages: number + poolList: Pool[] | null + isWorldsForENSOwnersEnabled: boolean onOpenModal: typeof openModal onPageChange: (options: PaginationOptions) => void onLoadFromScenePool: typeof loadPoolsRequest - poolList: Pool[] | null } export type MapStateProps = Pick< Props, - 'projects' | 'isFetching' | 'isLoggingIn' | 'page' | 'sortBy' | 'totalPages' | 'didCreate' | 'poolList' + 'projects' | 'isFetching' | 'isLoggingIn' | 'page' | 'sortBy' | 'totalPages' | 'didCreate' | 'poolList' | 'isWorldsForENSOwnersEnabled' > export type MapDispatchProps = Pick export type MapDispatch = Dispatch From cce179177653b6abbaf2cbab20c7dc5d325a80cf Mon Sep 17 00:00:00 2001 From: Nando <24811313+fzavalia@users.noreply.github.com> Date: Mon, 9 Oct 2023 12:03:16 -0300 Subject: [PATCH 3/6] feat: Open announcement modal on worlds list page --- .../WorldListPage.container.ts | 3 ++- .../WorldListPage.tsx | 22 +++++++++++++++++-- .../WorldListPage.types.ts | 5 +++-- 3 files changed, 25 insertions(+), 5 deletions(-) diff --git a/src/components/WorldListPage_WorldsForEnsOwnersFeature/WorldListPage.container.ts b/src/components/WorldListPage_WorldsForEnsOwnersFeature/WorldListPage.container.ts index eeedb7816d..ac004ceef6 100644 --- a/src/components/WorldListPage_WorldsForEnsOwnersFeature/WorldListPage.container.ts +++ b/src/components/WorldListPage_WorldsForEnsOwnersFeature/WorldListPage.container.ts @@ -39,7 +39,8 @@ const mapState = (state: RootState): MapStateProps => ({ const mapDispatch = (dispatch: MapDispatch): MapDispatchProps => ({ onNavigate: path => dispatch(push(path)), - onOpenModal: metadata => dispatch(openModal('WorldsYourStorageModal', metadata)) + onOpenYourStorageModal: metadata => dispatch(openModal('WorldsYourStorageModal', metadata)), + onOpenWorldsForENSOwnersAnnouncementModal: () => dispatch(openModal('WorldsForENSOwnersAnnouncementModal')) }) export default connect(mapState, mapDispatch)(WorldListPage) diff --git a/src/components/WorldListPage_WorldsForEnsOwnersFeature/WorldListPage.tsx b/src/components/WorldListPage_WorldsForEnsOwnersFeature/WorldListPage.tsx index a5bdc08063..266ec0a99b 100644 --- a/src/components/WorldListPage_WorldsForEnsOwnersFeature/WorldListPage.tsx +++ b/src/components/WorldListPage_WorldsForEnsOwnersFeature/WorldListPage.tsx @@ -26,6 +26,7 @@ import CopyToClipboard from 'components/CopyToClipboard/CopyToClipboard' import Icon from 'components/Icon' import LoggedInDetailPage from 'components/LoggedInDetailPage' import { NavigationTab } from 'components/Navigation/Navigation.types' +import { canOpenWorldsForENSOwnersAnnouncementModal } from 'components/Modals/WorldsForENSOwnersAnnouncementModal/utils' import { Props, SortBy } from './WorldListPage.types' import NameTabs from './NameTabs' import WorldsStorage from './WorldsStorage' @@ -39,7 +40,18 @@ const ENS_DOMAINS_URL = config.get('ENS_DOMAINS_URL', '') const PAGE_SIZE = 12 const WorldListPage: React.FC = props => { - const { ensList, externalNames, error, deploymentsByWorlds, isLoading, projects, worldsWalletStats, onNavigate, onOpenModal } = props + const { + ensList, + externalNames, + error, + deploymentsByWorlds, + isLoading, + projects, + worldsWalletStats, + onNavigate, + onOpenYourStorageModal, + onOpenWorldsForENSOwnersAnnouncementModal + } = props const [sortBy, setSortBy] = useState(SortBy.ASC) const [page, setPage] = useState(1) const { tab } = useCurrentlySelectedTab() @@ -332,7 +344,7 @@ const WorldListPage: React.FC = props => { currentBytes={Number(worldsWalletStats.usedSpace)} className="worlds-storage" onViewDetails={() => { - onOpenModal({ stats: worldsWalletStats }) + onOpenYourStorageModal({ stats: worldsWalletStats }) }} /> ) : null} @@ -355,6 +367,12 @@ const WorldListPage: React.FC = props => { setPage(1) }, [tab]) + useEffect(() => { + if (canOpenWorldsForENSOwnersAnnouncementModal()) { + onOpenWorldsForENSOwnersAnnouncementModal() + } + }, [onOpenWorldsForENSOwnersAnnouncementModal]) + return ( void - onOpenModal: (metadata: WorldsYourStorageModalMetadata) => void + onOpenYourStorageModal: (metadata: WorldsYourStorageModalMetadata) => void + onOpenWorldsForENSOwnersAnnouncementModal: () => void } export type State = { @@ -32,5 +33,5 @@ export type MapStateProps = Pick< Props, 'ensList' | 'externalNames' | 'deploymentsByWorlds' | 'isLoading' | 'error' | 'projects' | 'isLoggedIn' | 'worldsWalletStats' > -export type MapDispatchProps = Pick +export type MapDispatchProps = Pick export type MapDispatch = Dispatch From 51a016764368ec479fab698afa7bc808a481fef5 Mon Sep 17 00:00:00 2001 From: Nando <24811313+fzavalia@users.noreply.github.com> Date: Mon, 9 Oct 2023 12:05:51 -0300 Subject: [PATCH 4/6] fix: Add copies --- src/modules/translation/languages/en.json | 7 +++++++ src/modules/translation/languages/es.json | 7 +++++++ src/modules/translation/languages/zh.json | 7 +++++++ 3 files changed, 21 insertions(+) diff --git a/src/modules/translation/languages/en.json b/src/modules/translation/languages/en.json index ebbac23009..b998fcb83a 100644 --- a/src/modules/translation/languages/en.json +++ b/src/modules/translation/languages/en.json @@ -2116,5 +2116,12 @@ "names_buy": "BUY NAME", "proposal": "These storage rules were voted on and passed in a governance DAO proposal.", "learn_more": "LEARN MORE" + }, + "worlds_for_ens_owners_announcement_modal": { + "title": "Introducing ENS Worlds and Enhanced Storage for Decentraland Worlds", + "description_ens": "ENS domain holders can now create Worlds with 25 MB of dedicated storage.", + "description_dcl": "Decentraland NAME holders get 100 MB of storage per NAME, LAND, or 2,000 MANA, now with the flexibility of shared storage for more creative freedom.", + "start_building": "start building", + "learn_more": "learn more about worlds" } } diff --git a/src/modules/translation/languages/es.json b/src/modules/translation/languages/es.json index 041bc3c3b0..b1cd493dbd 100644 --- a/src/modules/translation/languages/es.json +++ b/src/modules/translation/languages/es.json @@ -2134,5 +2134,12 @@ "names_buy": "COMPRAR NAME", "proposal": "Estas reglas de almacenamiento fueron votadas y aprobadas en una propuesta de la DAO.", "learn_more": "APRENDER MÁS" + }, + "worlds_for_ens_owners_announcement_modal": { + "title": "Introduciendo Mundos ENS y Almacenamiento Mejorado para Mundos Decentraland", + "description_ens": "Los titulares de Dominios ENS ahora pueden crear Mundos con 25 MB de almacenamiento dedicado.", + "description_dcl": "Los titulares de NAMEs de Decentraland obtienen 100 MB de almacenamiento por NAME, LAND, o 2,000 MANA, ahora con la flexibilidad del almacenamiento compartido para mayor libertad creativa.", + "start_building": "comenzar a construir", + "learn_more": "aprende más sobre los mundos" } } diff --git a/src/modules/translation/languages/zh.json b/src/modules/translation/languages/zh.json index fabf1f3dbf..e2aece261a 100644 --- a/src/modules/translation/languages/zh.json +++ b/src/modules/translation/languages/zh.json @@ -2117,5 +2117,12 @@ "names_buy": "购买 NAME", "proposal": "这些存储规则经过治理 DAO 提案的投票并获得通过。", "learn_more": "了解更多" + }, + "worlds_for_ens_owners_announcement_modal": { + "title": "介绍 ENS 世界和 Decentraland 世界的增强存储", + "description_ens": "ENS 域名持有者现在可以创建具有 25 MB 专用存储空间的世界。", + "description_dcl": "Decentraland NAME 持有者每个 NAME、LAND 或 2000 MANA 获得 100 MB 的存储空间,现在具有共享存储的灵活性,以实现更多的创造自由。", + "start_building": "开始构建", + "learn_more": "了解更多关于世界的信息" } } From 213ec1131e3f307e2b9cdbc2a46c204a9eb4cec0 Mon Sep 17 00:00:00 2001 From: Nando <24811313+fzavalia@users.noreply.github.com> Date: Mon, 9 Oct 2023 12:25:36 -0300 Subject: [PATCH 5/6] fix: Add tests --- .../utils.spec.ts | 61 +++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 src/components/Modals/WorldsForENSOwnersAnnouncementModal/utils.spec.ts diff --git a/src/components/Modals/WorldsForENSOwnersAnnouncementModal/utils.spec.ts b/src/components/Modals/WorldsForENSOwnersAnnouncementModal/utils.spec.ts new file mode 100644 index 0000000000..998cbe9693 --- /dev/null +++ b/src/components/Modals/WorldsForENSOwnersAnnouncementModal/utils.spec.ts @@ -0,0 +1,61 @@ +import { getLocalStorage } from 'decentraland-dapps/dist/lib/localStorage' +import { LocalStorage } from 'decentraland-dapps/dist/lib/types' +import { + LOCALSTORAGE_WORLDS_FOR_ENS_OWNERS_ANNOUCEMENT, + canOpenWorldsForENSOwnersAnnouncementModal, + persistCanOpenWorldsForENSOwnersAnnouncementModal +} from './utils' + +jest.mock('decentraland-dapps/dist/lib/localStorage') + +const mockGetLocalStorage = getLocalStorage as jest.MockedFunction + +let setItem: jest.MockedFunction +let ls: LocalStorage + +beforeEach(() => { + setItem = jest.fn() + + ls = { + getItem: () => null, + setItem + } as unknown as LocalStorage + + mockGetLocalStorage.mockReturnValueOnce(ls) +}) + +describe('when getting if the worlds for ens owners announcement modal can be opened', () => { + describe('when the local storage returns something else than "1"', () => { + it('should return true', () => { + expect(canOpenWorldsForENSOwnersAnnouncementModal()).toBeTruthy() + }) + }) + + describe('when the local storage returns "1"', () => { + beforeEach(() => { + ls.getItem = () => '1' + }) + + it('should return false', () => { + expect(canOpenWorldsForENSOwnersAnnouncementModal()).toBeFalsy() + }) + }) +}) + +describe('when persisting if the worlds for ens owners announcement modal can be opened', () => { + describe('when the value is true', () => { + it('should call the set item local storage method with undefined', () => { + persistCanOpenWorldsForENSOwnersAnnouncementModal(true) + + expect(setItem).toHaveBeenCalledWith(LOCALSTORAGE_WORLDS_FOR_ENS_OWNERS_ANNOUCEMENT, undefined) + }) + }) + + describe('when the value is false', () => { + it('should call the set item local storage method with "1"', () => { + persistCanOpenWorldsForENSOwnersAnnouncementModal(false) + + expect(setItem).toHaveBeenCalledWith(LOCALSTORAGE_WORLDS_FOR_ENS_OWNERS_ANNOUCEMENT, '1') + }) + }) +}) From 36d8e04f9c94127578b7ca6f8a7fae06ab004fc0 Mon Sep 17 00:00:00 2001 From: Nando <24811313+fzavalia@users.noreply.github.com> Date: Mon, 9 Oct 2023 12:30:00 -0300 Subject: [PATCH 6/6] fix: Typo --- .../WorldsForENSOwnersAnnouncementModal/utils.spec.ts | 6 +++--- .../Modals/WorldsForENSOwnersAnnouncementModal/utils.ts | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/components/Modals/WorldsForENSOwnersAnnouncementModal/utils.spec.ts b/src/components/Modals/WorldsForENSOwnersAnnouncementModal/utils.spec.ts index 998cbe9693..963909db7a 100644 --- a/src/components/Modals/WorldsForENSOwnersAnnouncementModal/utils.spec.ts +++ b/src/components/Modals/WorldsForENSOwnersAnnouncementModal/utils.spec.ts @@ -1,7 +1,7 @@ import { getLocalStorage } from 'decentraland-dapps/dist/lib/localStorage' import { LocalStorage } from 'decentraland-dapps/dist/lib/types' import { - LOCALSTORAGE_WORLDS_FOR_ENS_OWNERS_ANNOUCEMENT, + LOCALSTORAGE_WORLDS_FOR_ENS_OWNERS_ANNOUNCEMENT, canOpenWorldsForENSOwnersAnnouncementModal, persistCanOpenWorldsForENSOwnersAnnouncementModal } from './utils' @@ -47,7 +47,7 @@ describe('when persisting if the worlds for ens owners announcement modal can be it('should call the set item local storage method with undefined', () => { persistCanOpenWorldsForENSOwnersAnnouncementModal(true) - expect(setItem).toHaveBeenCalledWith(LOCALSTORAGE_WORLDS_FOR_ENS_OWNERS_ANNOUCEMENT, undefined) + expect(setItem).toHaveBeenCalledWith(LOCALSTORAGE_WORLDS_FOR_ENS_OWNERS_ANNOUNCEMENT, undefined) }) }) @@ -55,7 +55,7 @@ describe('when persisting if the worlds for ens owners announcement modal can be it('should call the set item local storage method with "1"', () => { persistCanOpenWorldsForENSOwnersAnnouncementModal(false) - expect(setItem).toHaveBeenCalledWith(LOCALSTORAGE_WORLDS_FOR_ENS_OWNERS_ANNOUCEMENT, '1') + expect(setItem).toHaveBeenCalledWith(LOCALSTORAGE_WORLDS_FOR_ENS_OWNERS_ANNOUNCEMENT, '1') }) }) }) diff --git a/src/components/Modals/WorldsForENSOwnersAnnouncementModal/utils.ts b/src/components/Modals/WorldsForENSOwnersAnnouncementModal/utils.ts index 468d70c63a..4748e99ef0 100644 --- a/src/components/Modals/WorldsForENSOwnersAnnouncementModal/utils.ts +++ b/src/components/Modals/WorldsForENSOwnersAnnouncementModal/utils.ts @@ -1,13 +1,13 @@ import { getLocalStorage } from 'decentraland-dapps/dist/lib/localStorage' -export const LOCALSTORAGE_WORLDS_FOR_ENS_OWNERS_ANNOUCEMENT = 'builder-worlds-for-ens-owners-announcement' +export const LOCALSTORAGE_WORLDS_FOR_ENS_OWNERS_ANNOUNCEMENT = 'builder-worlds-for-ens-owners-announcement' export const persistCanOpenWorldsForENSOwnersAnnouncementModal = (canOpen: boolean) => { const ls = getLocalStorage() - ls.setItem(LOCALSTORAGE_WORLDS_FOR_ENS_OWNERS_ANNOUCEMENT, canOpen ? undefined : '1') + ls.setItem(LOCALSTORAGE_WORLDS_FOR_ENS_OWNERS_ANNOUNCEMENT, canOpen ? undefined : '1') } export const canOpenWorldsForENSOwnersAnnouncementModal = () => { const ls = getLocalStorage() - return ls.getItem(LOCALSTORAGE_WORLDS_FOR_ENS_OWNERS_ANNOUCEMENT) !== '1' + return ls.getItem(LOCALSTORAGE_WORLDS_FOR_ENS_OWNERS_ANNOUNCEMENT) !== '1' }