mirror of
https://github.com/kremalicious/umami.git
synced 2024-11-14 17:25:02 +01:00
Use portal for modals. Prisma disconnect after query.
This commit is contained in:
parent
774a7dfdbc
commit
d4ca02f110
@ -1,16 +1,18 @@
|
||||
import React from 'react';
|
||||
import ReactDOM from 'react-dom';
|
||||
import { useSpring, animated } from 'react-spring';
|
||||
import styles from './Modal.module.css';
|
||||
|
||||
export default function Modal({ title, children }) {
|
||||
const props = useSpring({ opacity: 1, from: { opacity: 0 } });
|
||||
|
||||
return (
|
||||
return ReactDOM.createPortal(
|
||||
<animated.div className={styles.modal} style={props}>
|
||||
<div className={styles.content}>
|
||||
{title && <div className={styles.header}>{title}</div>}
|
||||
<div className={styles.body}>{children}</div>
|
||||
</div>
|
||||
</animated.div>
|
||||
</animated.div>,
|
||||
document.getElementById('__modals'),
|
||||
);
|
||||
}
|
||||
|
@ -16,6 +16,7 @@ export default function Layout({ title, children, header = true, footer = true }
|
||||
</Head>
|
||||
{header && <Header />}
|
||||
<main className="container">{children}</main>
|
||||
<div id="__modals" />
|
||||
{footer && <Footer />}
|
||||
</>
|
||||
);
|
||||
|
@ -1,20 +1,15 @@
|
||||
.container {
|
||||
display: flex;
|
||||
flex: 1;
|
||||
position: relative;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.container .menu {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
padding: 30px 0;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
.container .content {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
border-left: 1px solid var(--gray300);
|
||||
padding-left: 30px;
|
||||
}
|
||||
|
11
lib/db.js
11
lib/db.js
@ -33,8 +33,11 @@ if (process.env.NODE_ENV === 'production') {
|
||||
export default prisma;
|
||||
|
||||
export async function runQuery(query) {
|
||||
return query.catch(e => {
|
||||
console.error(e);
|
||||
throw e;
|
||||
});
|
||||
return query
|
||||
.catch(e => {
|
||||
console.error(e);
|
||||
})
|
||||
.finally(() => {
|
||||
prisma.$disconnect();
|
||||
});
|
||||
}
|
||||
|
@ -10,12 +10,13 @@ export async function verifySession(req) {
|
||||
}
|
||||
|
||||
const { website: website_uuid, hostname, screen, language, session } = payload;
|
||||
const token = await parseToken(session);
|
||||
|
||||
if (!isValidId(website_uuid)) {
|
||||
throw new Error(`Invalid website: ${website_uuid}`);
|
||||
}
|
||||
|
||||
const token = await parseToken(session);
|
||||
|
||||
if (!token || token.website_uuid !== website_uuid) {
|
||||
const { userAgent, browser, os, ip, country, device } = await getClientInfo(req, payload);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user