diff --git a/.changeset/itchy-eggs-warn.md b/.changeset/itchy-eggs-warn.md new file mode 100644 index 00000000..21d693be --- /dev/null +++ b/.changeset/itchy-eggs-warn.md @@ -0,0 +1,5 @@ +--- +"webtools-addon-sitemap": patch +--- + +fix: warning about uncontrolled to controlled input diff --git a/.changeset/twenty-wombats-burn.md b/.changeset/twenty-wombats-burn.md new file mode 100644 index 00000000..6b061a03 --- /dev/null +++ b/.changeset/twenty-wombats-burn.md @@ -0,0 +1,5 @@ +--- +"webtools-addon-sitemap": patch +--- + +fix: improve first use experience of sitemap addon diff --git a/packages/addons/sitemap/admin/components/Info/index.jsx b/packages/addons/sitemap/admin/components/Info/index.jsx index c10261cf..251a65d3 100644 --- a/packages/addons/sitemap/admin/components/Info/index.jsx +++ b/packages/addons/sitemap/admin/components/Info/index.jsx @@ -1,38 +1,28 @@ import React from 'react'; import { Map } from 'immutable'; -import { useIntl } from 'react-intl'; -import { useSelector, useDispatch } from 'react-redux'; +import { FormattedDate, FormattedTime, useIntl } from 'react-intl'; +import { useDispatch, useSelector } from 'react-redux'; import { useSearchParams } from 'react-router-dom'; import { getFetchClient, useNotification } from '@strapi/strapi/admin'; -import { - Typography, - Box, - Button, - Link, - Flex, -} from '@strapi/design-system'; +import { Box, Button, Flex, Link, Typography } from '@strapi/design-system'; import { generateSitemap } from '../../state/actions/Sitemap'; -import { formatTime } from '../../helpers/timeFormat'; + +const emptyMap = new Map(); const Info = () => { - const hasHostname = useSelector((state) => state.getIn(['sitemap', 'initialData', 'hostname'], Map())); - const sitemapInfo = useSelector((state) => state.getIn(['sitemap', 'info'], Map())); + const hasHostname = useSelector((state) => state.getIn(['sitemap', 'initialData', 'hostname'], emptyMap)); + const sitemapInfo = useSelector((state) => state.getIn(['sitemap', 'info'], emptyMap)); let [, setSearchParams] = useSearchParams(); const dispatch = useDispatch(); const { toggleNotification } = useNotification(); const { get } = getFetchClient(); const { formatMessage } = useIntl(); - const updateDate = new Date(sitemapInfo.get('updateTime')); - - // Format month, day and time. - const month = updateDate.toLocaleString('en', { month: 'numeric' }); - const day = updateDate.toLocaleString('en', { day: 'numeric' }); - const year = updateDate.getFullYear().toString().slice(2); - const time = formatTime(updateDate, true); + const updateTime = sitemapInfo.get('updateTime') ? new Date(sitemapInfo.get('updateTime')) : undefined; + const numberOfSitemaps = sitemapInfo.get('sitemaps') ?? 0; const content = () => { if (!hasHostname) { @@ -60,7 +50,7 @@ const Info = () => { ); } - if (sitemapInfo.size === 0) { + if (!updateTime) { return (