Apply patch [skip ci]
This commit is contained in:
parent
5b5672a74b
commit
4d6f6d5d02
59
routes/landlord/leases/index.tsx
Normal file
59
routes/landlord/leases/index.tsx
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
import { define } from "../../../utils.ts";
|
||||||
|
import LeasedHome from "../../../islands/LeasedHome.tsx";
|
||||||
|
import { page } from "fresh";
|
||||||
|
import { SessionCookie } from "../../auth/callback.ts";
|
||||||
|
import WelcomeBar from "../../../islands/WelcomeBar/WelcomeBar.tsx";
|
||||||
|
import { getAllProperties } from "../../../services/propertyService.ts";
|
||||||
|
import { getLeasesByOwner } from "../../../services/leaseService.ts";
|
||||||
|
import { createPublicId } from "../../../helpers.ts";
|
||||||
|
import type { Lease, Property } from "../../../db/interfaces.ts";
|
||||||
|
|
||||||
|
export const handler = define.handlers({
|
||||||
|
async GET(ctx) {
|
||||||
|
const stateData: SessionCookie = ctx.state.data;
|
||||||
|
if (!stateData?.user_id) {
|
||||||
|
return new Response("", {
|
||||||
|
status: 302,
|
||||||
|
headers: { Location: "/auth/login" },
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
const ownerId = stateData.user_id;
|
||||||
|
let leases: Lease[] = [];
|
||||||
|
let properties: Property[] = [];
|
||||||
|
|
||||||
|
leases = await getLeasesByOwner(ownerId);
|
||||||
|
properties = await getAllProperties();
|
||||||
|
|
||||||
|
const publicId = stateData.user_id
|
||||||
|
? await createPublicId(stateData.user_id)
|
||||||
|
: "";
|
||||||
|
|
||||||
|
return page({
|
||||||
|
stateData,
|
||||||
|
leases,
|
||||||
|
properties,
|
||||||
|
user_name: stateData.user_name,
|
||||||
|
isEncrypted: stateData.user_encrypted,
|
||||||
|
publicId,
|
||||||
|
stateId: ctx.state.stateId,
|
||||||
|
});
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
export default define.page(
|
||||||
|
({ data }: { data: { stateData: SessionCookie; leases: Lease[]; properties: Property[]; user_name: string; isEncrypted: boolean; publicId: string; stateId: string } }) => (
|
||||||
|
<main class="min-h-screen flex flex-col items-center justify-start pt-0">
|
||||||
|
<WelcomeBar
|
||||||
|
publicId={data.publicId}
|
||||||
|
user_name={data.user_name}
|
||||||
|
isEncrypted={data.isEncrypted}
|
||||||
|
currentRoute="/landlord/leases"
|
||||||
|
stateId={data.stateId}
|
||||||
|
/>
|
||||||
|
<div class="w-full max-w-4xl px-8 sm:px-12 lg:px-24 mt-8">
|
||||||
|
<LeasedHome leases={data.leases || []} properties={data.properties || []} />
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
),
|
||||||
|
);
|
||||||
Loading…
x
Reference in New Issue
Block a user