diff --git a/site/src/routes/apps/index.json.js b/site/src/routes/apps/index.json.js index dcc2205ee9..e6a09d52c5 100644 --- a/site/src/routes/apps/index.json.js +++ b/site/src/routes/apps/index.json.js @@ -3,13 +3,14 @@ import { query } from '../../utils/db'; export async function get(req, res) { if (req.user) { - const offset = req.params.offset || 0; + const page_size = 100; + const offset = req.query.offset ? parseInt(req.query.offset) : 0; const rows = await query(` select g.uid, g.name, coalesce(g.updated_at, g.created_at) as updated_at from gists g where g.user_id = $1 - order by updated_at desc - limit 100 + order by id desc + limit ${page_size + 1} offset $2 `, [req.user.id, offset]); @@ -17,7 +18,8 @@ export async function get(req, res) { row.uid = row.uid.replace(/-/g, ''); }); - send(res, 200, rows); + const more = rows.length > page_size; + send(res, 200, { apps: rows.slice(0, page_size), offset: more ? offset + page_size : null }); } else { send(res, 401); } diff --git a/site/src/routes/apps/index.svelte b/site/src/routes/apps/index.svelte index bbbe7d6391..d85f5681f8 100644 --- a/site/src/routes/apps/index.svelte +++ b/site/src/routes/apps/index.svelte @@ -1,17 +1,22 @@ @@ -20,6 +25,7 @@ export let user; export let apps; + export let offset; const { login, logout } = getContext('app'); @@ -62,6 +68,10 @@ {/each} + + {#if offset !== null} +
Next page...
+ {/if} {:else}

Please log in to see your saved apps.

{/if} @@ -127,4 +137,4 @@ font-size: 14px; color: #999; } - \ No newline at end of file +