banco persistente no h2 e nao obrigatorio a entrar ou criar org
This commit is contained in:
parent
56f0d20b06
commit
495984e1a4
4 changed files with 34 additions and 5 deletions
3
backend/.gitignore
vendored
3
backend/.gitignore
vendored
|
|
@ -43,3 +43,6 @@ nb-configuration.xml
|
||||||
/.quarkus/cli/plugins/
|
/.quarkus/cli/plugins/
|
||||||
# TLS Certificates
|
# TLS Certificates
|
||||||
.certs/
|
.certs/
|
||||||
|
|
||||||
|
# Local H2 Database
|
||||||
|
data/
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ quarkus.datasource.password=${DB_PASSWORD:timetrack}
|
||||||
quarkus.datasource.jdbc.url=${DB_URL:jdbc:postgresql://localhost:5432/timetrack}
|
quarkus.datasource.jdbc.url=${DB_URL:jdbc:postgresql://localhost:5432/timetrack}
|
||||||
|
|
||||||
%dev.quarkus.datasource.db-kind=h2
|
%dev.quarkus.datasource.db-kind=h2
|
||||||
%dev.quarkus.datasource.jdbc.url=jdbc:h2:mem:beetask;DB_CLOSE_DELAY=-1
|
%dev.quarkus.datasource.jdbc.url=jdbc:h2:file:./data/beetask;DB_CLOSE_DELAY=-1;AUTO_SERVER=TRUE
|
||||||
%dev.quarkus.hibernate-orm.database.generation=update
|
%dev.quarkus.hibernate-orm.database.generation=update
|
||||||
|
|
||||||
quarkus.flyway.migrate-at-start=false
|
quarkus.flyway.migrate-at-start=false
|
||||||
|
|
|
||||||
|
|
@ -1,26 +1,46 @@
|
||||||
import React from 'react'
|
import React from 'react'
|
||||||
import { motion, AnimatePresence } from 'framer-motion'
|
import { motion, AnimatePresence } from 'framer-motion'
|
||||||
import { PlusCircle, Search, Layout } from 'lucide-react'
|
import { PlusCircle, Search, Layout, X } from 'lucide-react'
|
||||||
import { useNavigate } from 'react-router-dom'
|
import { useNavigate } from 'react-router-dom'
|
||||||
|
|
||||||
interface OnboardingModalProps {
|
interface OnboardingModalProps {
|
||||||
isOpen: boolean
|
isOpen: boolean
|
||||||
|
onClose?: () => void
|
||||||
}
|
}
|
||||||
|
|
||||||
export const OnboardingModal: React.FC<OnboardingModalProps> = ({ isOpen }) => {
|
export const OnboardingModal: React.FC<OnboardingModalProps> = ({ isOpen, onClose }) => {
|
||||||
const navigate = useNavigate()
|
const navigate = useNavigate()
|
||||||
|
|
||||||
|
const handleClose = () => {
|
||||||
|
if (onClose) {
|
||||||
|
onClose()
|
||||||
|
} else {
|
||||||
|
navigate('/')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (!isOpen) return null
|
if (!isOpen) return null
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<AnimatePresence>
|
<AnimatePresence>
|
||||||
<div className="fixed inset-0 z-50 flex items-center justify-center p-4 bg-app-bg/80 backdrop-blur-sm">
|
<div
|
||||||
|
className="fixed inset-0 z-50 flex items-center justify-center p-4 bg-app-bg/80 backdrop-blur-sm"
|
||||||
|
onClick={handleClose}
|
||||||
|
>
|
||||||
<motion.div
|
<motion.div
|
||||||
initial={{ opacity: 0, scale: 0.9, y: 20 }}
|
initial={{ opacity: 0, scale: 0.9, y: 20 }}
|
||||||
animate={{ opacity: 1, scale: 1, y: 0 }}
|
animate={{ opacity: 1, scale: 1, y: 0 }}
|
||||||
exit={{ opacity: 0, scale: 0.9, y: 20 }}
|
exit={{ opacity: 0, scale: 0.9, y: 20 }}
|
||||||
|
onClick={(e) => e.stopPropagation()}
|
||||||
className="w-full max-w-lg bg-surface border border-border-soft rounded-[2.5rem] shadow-panel p-10 overflow-hidden relative"
|
className="w-full max-w-lg bg-surface border border-border-soft rounded-[2.5rem] shadow-panel p-10 overflow-hidden relative"
|
||||||
>
|
>
|
||||||
|
<button
|
||||||
|
onClick={handleClose}
|
||||||
|
className="absolute top-8 right-8 text-text-muted hover:text-brand transition-colors z-20"
|
||||||
|
>
|
||||||
|
<X size={24} />
|
||||||
|
</button>
|
||||||
|
|
||||||
{/* Decorations */}
|
{/* Decorations */}
|
||||||
<div className="absolute -top-20 -right-20 w-40 h-40 bg-brand/10 blur-[80px] rounded-full" />
|
<div className="absolute -top-20 -right-20 w-40 h-40 bg-brand/10 blur-[80px] rounded-full" />
|
||||||
<div className="absolute -bottom-20 -left-20 w-40 h-40 bg-accent/10 blur-[80px] rounded-full" />
|
<div className="absolute -bottom-20 -left-20 w-40 h-40 bg-accent/10 blur-[80px] rounded-full" />
|
||||||
|
|
|
||||||
|
|
@ -116,7 +116,13 @@ export const LoginPage: React.FC = () => {
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</motion.div>
|
</motion.div>
|
||||||
<OnboardingModal isOpen={showOnboarding} />
|
<OnboardingModal
|
||||||
|
isOpen={showOnboarding}
|
||||||
|
onClose={() => {
|
||||||
|
setShowOnboarding(false)
|
||||||
|
navigate('/')
|
||||||
|
}}
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue