0
Fork 0
mirror of https://github.com/TryGhost/Ghost.git synced 2025-02-10 23:36:14 -05:00

Fixed no offer screen and tab view

Ref: https://github.com/TryGhost/Product/issues/4188
This commit is contained in:
Princi Vershwal 2023-11-23 12:31:53 +05:30 committed by GitHub
parent a97e2b823e
commit 876f13c075
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -133,14 +133,14 @@ export const OffersIndexModal = () => {
}
});
const {data: {tiers: allTiers} = {}} = useBrowseTiers();
const activeOffers = allOffers.filter(offer => offer.status === 'active');
useEffect(() => {
if (!hasOffers) {
modal.remove();
updateRoute('');
}
}, [hasOffers, modal, updateRoute]);
const activeOffers = allOffers.filter((offer) => {
const offerTier = allTiers?.find(tier => tier.id === offer?.tier.id);
return (offer.status === 'active' && offerTier && offerTier.active === true);
});
const archivedOffers = allOffers.filter((offer) => {
const offerTier = allTiers?.find(tier => tier.id === offer?.tier.id);
return (offer.status === 'archived' || (offerTier && offerTier.active === false));
});
let offersTabs: Tab[] = [
{id: 'active', title: 'Active'},
@ -151,6 +151,16 @@ export const OffersIndexModal = () => {
const [sortOption, setSortOption] = useState('date-added');
const [sortDirection, setSortDirection] = useState('desc');
useEffect(() => {
if (!hasOffers) {
modal.remove();
updateRoute('');
}
if (activeOffers.length === 0 && archivedOffers.length > 0) {
setSelectedTab('archived');
}
}, [hasOffers, modal, updateRoute, activeOffers, archivedOffers, setSelectedTab]);
const handleOfferEdit = (id:string) => {
// TODO: implement
updateRoute(`offers/edit/${id}`);
@ -247,7 +257,7 @@ export const OffersIndexModal = () => {
animate={false}
cancelLabel=''
footer={
activeOffers.length > 0 ?
(activeOffers.length > 0 || archivedOffers.length > 0) ?
<div className='mx-8 flex w-full items-center justify-between'>
<a className='text-sm' href="https://ghost.org/help/offers" rel="noopener noreferrer" target="_blank"> Learn about offers in Ghost</a>
<Button color='black' label='Close' onClick={() => {
@ -263,12 +273,12 @@ export const OffersIndexModal = () => {
testId='offers-modal'
stickyFooter
>
{activeOffers.length > 0 ?
{(activeOffers.length > 0 || archivedOffers.length > 0) ?
<div className='pt-6'>
<header>
<div className='flex items-center justify-between'>
<div>
{sortedOffers.some(offer => offer.hasOwnProperty('status') && offer.status === 'archived') ?
{activeOffers.length > 0 && archivedOffers.length > 0 ?
<TabView
border={false}
selectedTab={selectedTab}