mirror of
https://github.com/chinchang/web-maker.git
synced 2025-07-09 16:06:21 +02:00
fix login flow for logged in features
This commit is contained in:
@ -9,7 +9,7 @@ import { LoaderWithText } from './Loader';
|
|||||||
import { Text } from './Text';
|
import { Text } from './Text';
|
||||||
import { Icon } from './Icons';
|
import { Icon } from './Icons';
|
||||||
|
|
||||||
const Assets = ({ onProBtnClick }) => {
|
const Assets = ({ onProBtnClick, onLoginBtnClick }) => {
|
||||||
const [files, setFiles] = useState([]);
|
const [files, setFiles] = useState([]);
|
||||||
const [isFetchingFiles, setIsFetchingFiles] = useState(false);
|
const [isFetchingFiles, setIsFetchingFiles] = useState(false);
|
||||||
const [searchTerm, setSearchTerm] = useState('');
|
const [searchTerm, setSearchTerm] = useState('');
|
||||||
@ -94,7 +94,9 @@ const Assets = ({ onProBtnClick }) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
if (window.user?.isPro) {
|
||||||
fetchFiles();
|
fetchFiles();
|
||||||
|
}
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
@ -161,9 +163,20 @@ const Assets = ({ onProBtnClick }) => {
|
|||||||
return (
|
return (
|
||||||
<VStack align="stretch" gap={2}>
|
<VStack align="stretch" gap={2}>
|
||||||
<p>Assets feature is available in PRO plan.</p>
|
<p>Assets feature is available in PRO plan.</p>
|
||||||
<button class="btn btn--primary" onClick={onProBtnClick}>
|
<button
|
||||||
|
class="btn btn--primary"
|
||||||
|
onClick={window.user ? onProBtnClick : onLoginBtnClick}
|
||||||
|
>
|
||||||
<HStack gap={1} fullWidth justify="center">
|
<HStack gap={1} fullWidth justify="center">
|
||||||
|
{window.user ? (
|
||||||
|
<>
|
||||||
Upgrade to <ProBadge />
|
Upgrade to <ProBadge />
|
||||||
|
</>
|
||||||
|
) : (
|
||||||
|
<>
|
||||||
|
Login & upgrade to <ProBadge />
|
||||||
|
</>
|
||||||
|
)}
|
||||||
</HStack>
|
</HStack>
|
||||||
</button>
|
</button>
|
||||||
</VStack>
|
</VStack>
|
||||||
|
@ -6,6 +6,7 @@ import { itemService } from '../itemService';
|
|||||||
import { alertsService } from '../notifications';
|
import { alertsService } from '../notifications';
|
||||||
import { Button } from './common';
|
import { Button } from './common';
|
||||||
import { Icon } from './Icons';
|
import { Icon } from './Icons';
|
||||||
|
import { Text } from './Text';
|
||||||
|
|
||||||
const FREE_PUBLIC_ITEM_COUNT = 1;
|
const FREE_PUBLIC_ITEM_COUNT = 1;
|
||||||
const BASE_URL = location.origin;
|
const BASE_URL = location.origin;
|
||||||
@ -58,6 +59,16 @@ export function Share({ user, item, onVisibilityChange }) {
|
|||||||
navigator.clipboard.writeText(`${BASE_URL}/create/${item.id}`);
|
navigator.clipboard.writeText(`${BASE_URL}/create/${item.id}`);
|
||||||
alertsService.add('URL copied to clipboard');
|
alertsService.add('URL copied to clipboard');
|
||||||
};
|
};
|
||||||
|
if (!user) {
|
||||||
|
return (
|
||||||
|
<HStack justify="center" gap={2}>
|
||||||
|
<Text>Login to share this creation</Text>
|
||||||
|
<Button class="btn btn--primary" onClick={copyUrl} aria-label="Copy">
|
||||||
|
Login
|
||||||
|
</Button>
|
||||||
|
</HStack>
|
||||||
|
);
|
||||||
|
}
|
||||||
return (
|
return (
|
||||||
<VStack gap={4} align="stretch">
|
<VStack gap={4} align="stretch">
|
||||||
<div style="min-width: 46ch">
|
<div style="min-width: 46ch">
|
||||||
|
@ -1792,6 +1792,10 @@ export default class App extends Component {
|
|||||||
this.proBtnClickHandler();
|
this.proBtnClickHandler();
|
||||||
this.setState({ isAssetsOpen: false });
|
this.setState({ isAssetsOpen: false });
|
||||||
}}
|
}}
|
||||||
|
onLoginBtnClick={() => {
|
||||||
|
this.loginBtnClickHandler();
|
||||||
|
this.setState({ isAssetsOpen: false });
|
||||||
|
}}
|
||||||
/>
|
/>
|
||||||
</Modal>
|
</Modal>
|
||||||
<Modal
|
<Modal
|
||||||
|
Reference in New Issue
Block a user