Update cospend layout styling to match site theme
- Change navigation text from "View All Payments" to "All Payments" - Remove Nord theme background overrides to use global site background - Update side panel styling to match site colors in light/dark modes - Maintain existing functionality while improving visual consistency 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -5,9 +5,18 @@
|
|||||||
import { fly } from 'svelte/transition';
|
import { fly } from 'svelte/transition';
|
||||||
import { quintOut } from 'svelte/easing';
|
import { quintOut } from 'svelte/easing';
|
||||||
import PaymentModal from '$lib/components/PaymentModal.svelte';
|
import PaymentModal from '$lib/components/PaymentModal.svelte';
|
||||||
|
import Header from '$lib/components/Header.svelte';
|
||||||
|
import UserHeader from '$lib/components/UserHeader.svelte';
|
||||||
|
|
||||||
|
export let data;
|
||||||
|
|
||||||
let showModal = false;
|
let showModal = false;
|
||||||
let paymentId = null;
|
let paymentId = null;
|
||||||
|
let user;
|
||||||
|
|
||||||
|
if (data.session) {
|
||||||
|
user = data.session.user;
|
||||||
|
}
|
||||||
|
|
||||||
$: {
|
$: {
|
||||||
// Check if URL contains payment view route OR if we have paymentId in state
|
// Check if URL contains payment view route OR if we have paymentId in state
|
||||||
@@ -37,28 +46,37 @@
|
|||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div class="layout-container" class:has-modal={showModal}>
|
<Header>
|
||||||
<div class="main-content">
|
<ul class="site_header" slot="links">
|
||||||
<slot />
|
<li><a href="/cospend">Dashboard</a></li>
|
||||||
</div>
|
<li><a href="/cospend/payments">All Payments</a></li>
|
||||||
|
<li><a href="/cospend/recurring">Recurring Payments</a></li>
|
||||||
|
</ul>
|
||||||
|
<UserHeader slot="right_side" {user}></UserHeader>
|
||||||
|
|
||||||
|
<div class="layout-container" class:has-modal={showModal}>
|
||||||
|
<div class="main-content">
|
||||||
|
<slot />
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="side-panel">
|
<div class="side-panel">
|
||||||
{#if showModal}
|
{#if showModal}
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
{#key paymentId}
|
{#key paymentId}
|
||||||
<div in:fly={{x: 50, duration: 300, easing: quintOut}} out:fly={{x: -50, duration: 300, easing: quintOut}}>
|
<div in:fly={{x: 50, duration: 300, easing: quintOut}} out:fly={{x: -50, duration: 300, easing: quintOut}}>
|
||||||
<PaymentModal {paymentId} on:close={() => showModal = false} on:paymentDeleted={handlePaymentDeleted} />
|
<PaymentModal {paymentId} on:close={() => showModal = false} on:paymentDeleted={handlePaymentDeleted} />
|
||||||
</div>
|
</div>
|
||||||
{/key}
|
{/key}
|
||||||
</div>
|
</div>
|
||||||
{/if}
|
{/if}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</Header>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
.layout-container {
|
.layout-container {
|
||||||
display: flex;
|
display: flex;
|
||||||
min-height: 100vh;
|
min-height: calc(100vh - 4rem);
|
||||||
}
|
}
|
||||||
|
|
||||||
.main-content {
|
.main-content {
|
||||||
@@ -72,11 +90,11 @@
|
|||||||
|
|
||||||
.side-panel {
|
.side-panel {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
top: 0;
|
top: 4rem;
|
||||||
right: 0;
|
right: 0;
|
||||||
width: 400px;
|
width: 400px;
|
||||||
height: 100vh;
|
height: calc(100vh - 4rem);
|
||||||
background: white;
|
background: #fbf9f3;
|
||||||
border-left: 1px solid #dee2e6;
|
border-left: 1px solid #dee2e6;
|
||||||
box-shadow: -2px 0 10px rgba(0, 0, 0, 0.1);
|
box-shadow: -2px 0 10px rgba(0, 0, 0, 0.1);
|
||||||
z-index: 100;
|
z-index: 100;
|
||||||
@@ -103,6 +121,13 @@
|
|||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@media (prefers-color-scheme: dark) {
|
||||||
|
.side-panel {
|
||||||
|
background: var(--background-dark);
|
||||||
|
border-left-color: #434C5E;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@media (max-width: 768px) {
|
@media (max-width: 768px) {
|
||||||
.layout-container.has-modal {
|
.layout-container.has-modal {
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
@@ -122,6 +147,14 @@
|
|||||||
border-left: none;
|
border-left: none;
|
||||||
border-top: 1px solid #dee2e6;
|
border-top: 1px solid #dee2e6;
|
||||||
box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1);
|
box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1);
|
||||||
|
top: auto;
|
||||||
|
bottom: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: 768px) and (prefers-color-scheme: dark) {
|
||||||
|
.side-panel {
|
||||||
|
border-top-color: #434C5E;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
Reference in New Issue
Block a user