Enhance documentation, implement Twilio OTP delivery, and update payment gateway methods. Updated AGENTS.md and README.md for clarity on ExecPlans and architecture. Added Twilio as a dependency and implemented capture/refund methods in MoyasarGateway. Improved frontend routing with react-router-dom and added authentication context. Updated styles and localization files for better user experience.
This commit is contained in:
@@ -25,6 +25,42 @@ body {
|
||||
padding: 48px 24px 80px;
|
||||
}
|
||||
|
||||
.main-header {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
gap: 16px;
|
||||
margin-bottom: 32px;
|
||||
padding-bottom: 16px;
|
||||
border-bottom: 1px solid #eadfd2;
|
||||
}
|
||||
|
||||
.main-nav {
|
||||
display: flex;
|
||||
gap: 16px;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.nav-brand,
|
||||
.nav-link {
|
||||
color: #1c1b1f;
|
||||
text-decoration: none;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.nav-brand:hover,
|
||||
.nav-link:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.nav-logout {
|
||||
background: none;
|
||||
border: none;
|
||||
cursor: pointer;
|
||||
font: inherit;
|
||||
}
|
||||
|
||||
.hero {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
@@ -237,6 +273,151 @@ h1 {
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.card-link {
|
||||
display: inline-block;
|
||||
margin-top: 8px;
|
||||
color: #1c1b1f;
|
||||
font-weight: 600;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.card-link:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.auth-page {
|
||||
max-width: 400px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.auth-form {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 16px;
|
||||
margin-top: 24px;
|
||||
}
|
||||
|
||||
.auth-subtitle {
|
||||
color: #5c5a5f;
|
||||
margin: 8px 0 0;
|
||||
}
|
||||
|
||||
.auth-actions {
|
||||
display: flex;
|
||||
gap: 12px;
|
||||
}
|
||||
|
||||
.auth-back {
|
||||
background: transparent;
|
||||
border: 1px solid #dad3ca;
|
||||
color: #3c3a3f;
|
||||
}
|
||||
|
||||
.auth-loading {
|
||||
text-align: center;
|
||||
padding: 48px;
|
||||
}
|
||||
|
||||
.salon-detail {
|
||||
margin-bottom: 32px;
|
||||
}
|
||||
|
||||
.service-list,
|
||||
.staff-list {
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
margin: 12px 0;
|
||||
}
|
||||
|
||||
.service-list li,
|
||||
.staff-list li {
|
||||
padding: 8px 0;
|
||||
border-bottom: 1px solid #eadfd2;
|
||||
}
|
||||
|
||||
.book-cta {
|
||||
display: inline-block;
|
||||
margin-top: 24px;
|
||||
padding: 12px 24px;
|
||||
background: #1c1b1f;
|
||||
color: white;
|
||||
font-weight: 600;
|
||||
text-decoration: none;
|
||||
border-radius: 999px;
|
||||
}
|
||||
|
||||
.book-cta:hover {
|
||||
opacity: 0.9;
|
||||
}
|
||||
|
||||
.book-form {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 16px;
|
||||
max-width: 400px;
|
||||
margin-top: 24px;
|
||||
}
|
||||
|
||||
.book-salon {
|
||||
color: #5c5a5f;
|
||||
margin: 4px 0 0;
|
||||
}
|
||||
|
||||
.bookings-list {
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
margin: 24px 0 0;
|
||||
}
|
||||
|
||||
.booking-card {
|
||||
background: white;
|
||||
padding: 20px;
|
||||
border-radius: 16px;
|
||||
box-shadow: 0 12px 24px rgba(21, 21, 21, 0.08);
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
|
||||
.booking-header {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.booking-status {
|
||||
text-transform: capitalize;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.booking-service,
|
||||
.booking-time,
|
||||
.booking-price {
|
||||
margin: 8px 0 0;
|
||||
color: #5c5a5f;
|
||||
}
|
||||
|
||||
.booking-pay-link {
|
||||
display: inline-block;
|
||||
margin-top: 12px;
|
||||
font-weight: 600;
|
||||
color: #1c1b1f;
|
||||
}
|
||||
|
||||
.payment-return {
|
||||
max-width: 480px;
|
||||
margin: 0 auto;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.payment-return-id {
|
||||
font-size: 14px;
|
||||
color: #5c5a5f;
|
||||
}
|
||||
|
||||
.profile-phone {
|
||||
margin: 8px 0 16px;
|
||||
color: #5c5a5f;
|
||||
}
|
||||
|
||||
.error {
|
||||
color: #b00020;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user