0
Fork 0
mirror of https://github.com/TryGhost/Ghost.git synced 2025-03-04 02:01:58 -05:00

Added routing to Portal (#17240)

refs. https://github.com/TryGhost/Product/issues/3545

Routing for Portal settings in AdminX was missing
This commit is contained in:
Peter Zimon 2023-07-07 15:23:36 +02:00 committed by GitHub
parent 702c88b9ba
commit ca3fe7d9db
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 15 additions and 6 deletions

View file

@ -3,6 +3,7 @@ import DesignModal from '../settings/site/DesignModal';
import InviteUserModal from '../settings/general/InviteUserModal';
import NavigationModal from '../settings/site/NavigationModal';
import NiceModal from '@ebay/nice-modal-react';
import PortalModal from '../settings/membership/PortalModal';
import React, {createContext, useCallback, useContext, useEffect, useState} from 'react';
import {SettingsContext} from './SettingsProvider';
@ -49,6 +50,8 @@ function handleNavigation() {
NiceModal.show(NavigationModal);
} else if (pathName === 'users/invite') {
NiceModal.show(InviteUserModal);
} else if (pathName === 'portal/edit') {
NiceModal.show(PortalModal);
}
const element = document.getElementById(pathName);
if (element) {

View file

@ -5,9 +5,9 @@ import React from 'react';
import SettingSection from '../../../admin-x-ds/settings/SettingSection';
const searchKeywords = {
portal: ['portal', 'signup', 'sign up', 'sign in', 'login', 'account'],
access: ['access', 'subscription', 'post'],
analytics: ['analytics', 'tracking', 'privacy']
portal: ['portal', 'signup', 'sign up', 'signin', 'sign in', 'login', 'account', 'membership'],
access: ['access', 'subscription', 'post', 'membership'],
analytics: ['analytics', 'tracking', 'privacy', 'membership']
};
const MembershipSettings: React.FC = () => {

View file

@ -1,12 +1,12 @@
import Button from '../../../admin-x-ds/global/Button';
import NiceModal from '@ebay/nice-modal-react';
import PortalModal from './PortalModal';
import React from 'react';
import SettingGroup from '../../../admin-x-ds/settings/SettingGroup';
import useRouting from '../../../hooks/useRouting';
const Portal: React.FC<{ keywords: string[] }> = ({keywords}) => {
const {updateRoute} = useRouting();
const openPreviewModal = () => {
NiceModal.show(PortalModal);
updateRoute('portal/edit');
};
return (

View file

@ -7,6 +7,7 @@ import React, {useContext, useState} from 'react';
import SignupOptions from './portal/SignupOptions';
import TabView, {Tab} from '../../../admin-x-ds/global/TabView';
import useForm, {Dirtyable} from '../../../hooks/useForm';
import useRouting from '../../../hooks/useRouting';
import {PreviewModalContent} from '../../../admin-x-ds/global/modal/PreviewModal';
import {Setting, SettingValue, Tier} from '../../../types/api';
import {SettingsContext} from '../../providers/SettingsProvider';
@ -61,6 +62,7 @@ const Sidebar: React.FC<{
const PortalModal: React.FC = () => {
const modal = useModal();
const {updateRoute} = useRouting();
const [selectedPreviewTab, setSelectedPreviewTab] = useState('signup');
@ -152,6 +154,9 @@ const PortalModal: React.FC = () => {
}
return <PreviewModalContent
afterClose={() => {
updateRoute('portal');
}}
deviceSelector={false}
dirty={saveState === 'unsaved'}
okLabel={okLabel}
@ -165,6 +170,7 @@ const PortalModal: React.FC = () => {
onOk={async () => {
if (!Object.values(errors).filter(Boolean).length) {
await handleSave();
updateRoute('portal');
modal.remove();
}
}}