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:
parent
a97e2b823e
commit
876f13c075
1 changed files with 21 additions and 11 deletions
|
@ -133,14 +133,14 @@ export const OffersIndexModal = () => {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
const {data: {tiers: allTiers} = {}} = useBrowseTiers();
|
const {data: {tiers: allTiers} = {}} = useBrowseTiers();
|
||||||
const activeOffers = allOffers.filter(offer => offer.status === 'active');
|
const activeOffers = allOffers.filter((offer) => {
|
||||||
|
const offerTier = allTiers?.find(tier => tier.id === offer?.tier.id);
|
||||||
useEffect(() => {
|
return (offer.status === 'active' && offerTier && offerTier.active === true);
|
||||||
if (!hasOffers) {
|
});
|
||||||
modal.remove();
|
const archivedOffers = allOffers.filter((offer) => {
|
||||||
updateRoute('');
|
const offerTier = allTiers?.find(tier => tier.id === offer?.tier.id);
|
||||||
}
|
return (offer.status === 'archived' || (offerTier && offerTier.active === false));
|
||||||
}, [hasOffers, modal, updateRoute]);
|
});
|
||||||
|
|
||||||
let offersTabs: Tab[] = [
|
let offersTabs: Tab[] = [
|
||||||
{id: 'active', title: 'Active'},
|
{id: 'active', title: 'Active'},
|
||||||
|
@ -151,6 +151,16 @@ export const OffersIndexModal = () => {
|
||||||
const [sortOption, setSortOption] = useState('date-added');
|
const [sortOption, setSortOption] = useState('date-added');
|
||||||
const [sortDirection, setSortDirection] = useState('desc');
|
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) => {
|
const handleOfferEdit = (id:string) => {
|
||||||
// TODO: implement
|
// TODO: implement
|
||||||
updateRoute(`offers/edit/${id}`);
|
updateRoute(`offers/edit/${id}`);
|
||||||
|
@ -247,7 +257,7 @@ export const OffersIndexModal = () => {
|
||||||
animate={false}
|
animate={false}
|
||||||
cancelLabel=''
|
cancelLabel=''
|
||||||
footer={
|
footer={
|
||||||
activeOffers.length > 0 ?
|
(activeOffers.length > 0 || archivedOffers.length > 0) ?
|
||||||
<div className='mx-8 flex w-full items-center justify-between'>
|
<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>
|
<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={() => {
|
<Button color='black' label='Close' onClick={() => {
|
||||||
|
@ -263,12 +273,12 @@ export const OffersIndexModal = () => {
|
||||||
testId='offers-modal'
|
testId='offers-modal'
|
||||||
stickyFooter
|
stickyFooter
|
||||||
>
|
>
|
||||||
{activeOffers.length > 0 ?
|
{(activeOffers.length > 0 || archivedOffers.length > 0) ?
|
||||||
<div className='pt-6'>
|
<div className='pt-6'>
|
||||||
<header>
|
<header>
|
||||||
<div className='flex items-center justify-between'>
|
<div className='flex items-center justify-between'>
|
||||||
<div>
|
<div>
|
||||||
{sortedOffers.some(offer => offer.hasOwnProperty('status') && offer.status === 'archived') ?
|
{activeOffers.length > 0 && archivedOffers.length > 0 ?
|
||||||
<TabView
|
<TabView
|
||||||
border={false}
|
border={false}
|
||||||
selectedTab={selectedTab}
|
selectedTab={selectedTab}
|
||||||
|
|
Loading…
Add table
Reference in a new issue