a tool for shared writing and social publishing

sort home docs by last added

+15 -1
+1 -1
app/home/DocPreview.tsx
··· 48 48 backgroundColor: "rgba(var(--bg-card), var(--bg-card-alpha))", 49 49 }} 50 50 > 51 - <div className="font-bold text-lg">Delete this Page?</div> 51 + <div className="font-bold text-lg">Permanently this Doc?</div> 52 52 <div className="flex gap-2"> 53 53 <button 54 54 className="bg-accent-1 text-accent-2 px-2 py-1 rounded-md "
+9
app/home/page.tsx
··· 57 57 .single(); 58 58 if (!res.data) return <div>{JSON.stringify(res.error)}</div>; 59 59 let docs = res.data.permission_token_on_homepage 60 + .sort((a, b) => 61 + a.created_at === b.created_at 62 + ? a.token > b.token 63 + ? -1 64 + : 1 65 + : a.created_at > b.created_at 66 + ? -1 67 + : 1, 68 + ) 60 69 .map((d) => d.permission_tokens) 61 70 .filter((d) => d !== null); 62 71 if (!res.data.permission_tokens) return <div>no home page wierdly</div>;
+1
drizzle/schema.ts
··· 56 56 export const permission_token_on_homepage = pgTable("permission_token_on_homepage", { 57 57 token: uuid("token").notNull().references(() => permission_tokens.id, { onDelete: "cascade" } ), 58 58 identity: uuid("identity").notNull().references(() => identities.id, { onDelete: "cascade" } ), 59 + created_at: timestamp("created_at", { withTimezone: true, mode: 'string' }).defaultNow().notNull(), 59 60 }, 60 61 (table) => { 61 62 return {
+3
supabase/database.types.ts
··· 141 141 } 142 142 permission_token_on_homepage: { 143 143 Row: { 144 + created_at: string 144 145 identity: string 145 146 token: string 146 147 } 147 148 Insert: { 149 + created_at?: string 148 150 identity: string 149 151 token: string 150 152 } 151 153 Update: { 154 + created_at?: string 152 155 identity?: string 153 156 token?: string 154 157 }
+1
supabase/migrations/20240730042931_add created_at_to_homepage_items.sql
··· 1 + alter table "public"."permission_token_on_homepage" add column "created_at" timestamp with time zone not null default now();