Browse Source

feat: rename app and tweak ui

- rename for 'git together' to 'git work'
- tweak ui to make it responsive
master
DanConwayDev 2 years ago
parent
commit
2f3bd85e80
No known key found for this signature in database
GPG Key ID: 68E15486D73F75E1
  1. BIN
      __snapshots__/navbar--default.png
  2. BIN
      __snapshots__/navbar--nip-07-exists.png
  3. BIN
      __snapshots__/navbar--no-nip-07.png
  4. 134
      __snapshots__/navbar.test.js.snap
  5. BIN
      __snapshots__/prs-header--short-details.png
  6. 200
      __snapshots__/prs-header.test.js.snap
  7. BIN
      __snapshots__/repo-header--loading.png
  8. BIN
      __snapshots__/repo-header--long-name.png
  9. BIN
      __snapshots__/repo-header--no-name.png
  10. BIN
      __snapshots__/repo-header--short-name.png
  11. 42
      __snapshots__/repo-header.test.js.snap
  12. 13
      src/lib/components/Container.svelte
  13. 26
      src/lib/components/Navbar.svelte
  14. 85
      src/lib/components/prs/PRHeader.svelte
  15. 25
      src/lib/components/repo/RepoHeader.svelte
  16. 4
      src/routes/+layout.svelte
  17. 18
      src/routes/repo/[repo_id]/+page.svelte
  18. 39
      src/routes/repo/[repo_id]/pr/[pr_id]/+page.svelte
  19. 14
      tailwind.config.js

BIN
__snapshots__/navbar--default.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 9.0 KiB

BIN
__snapshots__/navbar--nip-07-exists.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 8.5 KiB

BIN
__snapshots__/navbar--no-nip-07.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 8.5 KiB

134
__snapshots__/navbar.test.js.snap

@ -1,29 +1,30 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP // Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`Navbar Default smoke-test 1`] = ` exports[`Navbar Default smoke-test 1`] = `
<div class="bg-neutral"> <div class="bg-base-400">
<div class="mx-auto lg:container bg-neutral"> <div class="mx-auto lg:container">
<div class="navbar"> <div class="px-3">
<div class="flex-1"> <div class="navbar">
<h4> <div class="navbar-start">
<span class="primary"> </div>
git <div class="navbar-center">
</span> <h4 class="align-middle text-sm font-mono">
<span class> <span class="text-primary">
together git
</span> </span>
<span class> <span class="text-primary">
.xyz workshop
</span> </span>
</h4> <span class>
</div> .net
<div class="flex-none gap-4"> </span>
<div class="btn btn-primary normal-case"> </h4>
Sign up </div>
<div class="navbar-end gap-4">
<div class="btn normal-case btn-sm btn-ghost">
Sign up
</div>
</div> </div>
<button class="btn btn-outline normal-case">
Login
</button>
</div> </div>
</div> </div>
</div> </div>
@ -31,26 +32,30 @@ exports[`Navbar Default smoke-test 1`] = `
`; `;
exports[`Navbar NIP07Exists smoke-test 1`] = ` exports[`Navbar NIP07Exists smoke-test 1`] = `
<div class="bg-neutral"> <div class="bg-base-400">
<div class="mx-auto lg:container bg-neutral"> <div class="mx-auto lg:container">
<div class="navbar"> <div class="px-3">
<div class="flex-1"> <div class="navbar">
<h4> <div class="navbar-start">
<span class="primary"> </div>
git <div class="navbar-center">
</span> <h4 class="align-middle text-sm font-mono">
<span class> <span class="text-primary">
together git
</span> </span>
<span class> <span class="text-primary">
.xyz workshop
</span> </span>
</h4> <span class>
</div> .net
<div class="flex-none gap-4"> </span>
<button class="btn btn-outline normal-case"> </h4>
Login </div>
</button> <div class="navbar-end gap-4">
<button class="btn normal-case btn-sm btn-ghost">
Login
</button>
</div>
</div> </div>
</div> </div>
</div> </div>
@ -58,29 +63,30 @@ exports[`Navbar NIP07Exists smoke-test 1`] = `
`; `;
exports[`Navbar NoNIP07 smoke-test 1`] = ` exports[`Navbar NoNIP07 smoke-test 1`] = `
<div class="bg-neutral"> <div class="bg-base-400">
<div class="mx-auto lg:container bg-neutral"> <div class="mx-auto lg:container">
<div class="navbar"> <div class="px-3">
<div class="flex-1"> <div class="navbar">
<h4> <div class="navbar-start">
<span class="primary"> </div>
git <div class="navbar-center">
</span> <h4 class="align-middle text-sm font-mono">
<span class> <span class="text-primary">
together git
</span> </span>
<span class> <span class="text-primary">
.xyz workshop
</span> </span>
</h4> <span class>
</div> .net
<div class="flex-none gap-4"> </span>
<div class="btn btn-primary normal-case"> </h4>
Sign up </div>
<div class="navbar-end gap-4">
<div class="btn normal-case btn-sm btn-ghost">
Sign up
</div>
</div> </div>
<button class="btn btn-outline normal-case">
Login
</button>
</div> </div>
</div> </div>
</div> </div>

BIN
__snapshots__/prs-header--short-details.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

200
__snapshots__/prs-header.test.js.snap

@ -1,26 +1,30 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP // Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`PRs/Header Author Loading smoke-test 1`] = ` exports[`PRs/Header Author Loading smoke-test 1`] = `
<div class="overflow-hidden grow text-xs text-neutral-content bg-base-200 border-b border-accent-content pt-2 pb-4 px-3"> <div class="overflow-hidden grow text-xs text-neutral-content bg-base-200 border-b border-accent-content pt-2 pb-4">
<div class="text-lg text-base-content mb-2"> <div class="mx-auto lg:container">
short title <div class="px-3">
</div> <div class="text-lg text-base-content mb-2">
<div class="pt-1"> short title
<button class="btn btn-success btn-sm mr-3 align-middle"> </div>
<svg xmlns="http://www.w3.org/2000/svg" <div class="pt-1">
viewbox="0 0 18 18" <button class="btn btn-success btn-sm mr-3 align-middle">
class="h-5 w-5 pt-1 flex-none fill-success-content" <svg xmlns="http://www.w3.org/2000/svg"
> viewbox="0 0 18 18"
<path d="M1.5 3.25a2.25 2.25 0 1 1 3 2.122v5.256a2.251 2.251 0 1 1-1.5 0V5.372A2.25 2.25 0 0 1 1.5 3.25m5.677-.177L9.573.677A.25.25 0 0 1 10 .854V2.5h1A2.5 2.5 0 0 1 13.5 5v5.628a2.251 2.251 0 1 1-1.5 0V5a1 1 0 0 0-1-1h-1v1.646a.25.25 0 0 1-.427.177L7.177 3.427a.25.25 0 0 1 0-.354M3.75 2.5a.75.75 0 1 0 0 1.5a.75.75 0 0 0 0-1.5m0 9.5a.75.75 0 1 0 0 1.5a.75.75 0 0 0 0-1.5m8.25.75a.75.75 0 1 0 1.5 0a.75.75 0 0 0-1.5 0"> class="h-5 w-5 pt-1 flex-none fill-success-content"
</path> >
</svg> <path d="M1.5 3.25a2.25 2.25 0 1 1 3 2.122v5.256a2.251 2.251 0 1 1-1.5 0V5.372A2.25 2.25 0 0 1 1.5 3.25m5.677-.177L9.573.677A.25.25 0 0 1 10 .854V2.5h1A2.5 2.5 0 0 1 13.5 5v5.628a2.251 2.251 0 1 1-1.5 0V5a1 1 0 0 0-1-1h-1v1.646a.25.25 0 0 1-.427.177L7.177 3.427a.25.25 0 0 1 0-.354M3.75 2.5a.75.75 0 1 0 0 1.5a.75.75 0 0 0 0-1.5m0 9.5a.75.75 0 1 0 0 1.5a.75.75 0 0 0 0-1.5m8.25.75a.75.75 0 1 0 1.5 0a.75.75 0 0 0-1.5 0">
Open </path>
</button> </svg>
<div class="inline mr-3 align-middle"> Open
opened 3 months ago </button>
</div> <div class="inline mr-3 align-middle">
<div class="inline align-middle"> opened 3 months ago
<div class="skeleton h-3 pb-2 w-20 inline-block"> </div>
<div class="inline align-middle">
<div class="skeleton h-3 pb-2 w-20 inline-block">
</div>
</div>
</div> </div>
</div> </div>
</div> </div>
@ -28,94 +32,110 @@ exports[`PRs/Header Author Loading smoke-test 1`] = `
`; `;
exports[`PRs/Header Long Details smoke-test 1`] = ` exports[`PRs/Header Long Details smoke-test 1`] = `
<div class="overflow-hidden grow text-xs text-neutral-content bg-base-200 border-b border-accent-content pt-2 pb-4 px-3"> <div class="overflow-hidden grow text-xs text-neutral-content bg-base-200 border-b border-accent-content pt-2 pb-4">
<div class="text-lg text-base-content mb-2"> <div class="mx-auto lg:container">
rather long title that goes on and on and on and on and on and on... <div class="px-3">
</div> <div class="text-lg text-base-content mb-2">
<div class="pt-1"> rather long title that goes on and on and on and on and on and on...
<button class="btn btn-success btn-sm mr-3 align-middle"> </div>
<svg xmlns="http://www.w3.org/2000/svg" <div class="pt-1">
viewbox="0 0 18 18" <button class="btn btn-success btn-sm mr-3 align-middle">
class="h-5 w-5 pt-1 flex-none fill-success-content" <svg xmlns="http://www.w3.org/2000/svg"
> viewbox="0 0 18 18"
<path d="M1.5 3.25a2.25 2.25 0 1 1 3 2.122v5.256a2.251 2.251 0 1 1-1.5 0V5.372A2.25 2.25 0 0 1 1.5 3.25m5.677-.177L9.573.677A.25.25 0 0 1 10 .854V2.5h1A2.5 2.5 0 0 1 13.5 5v5.628a2.251 2.251 0 1 1-1.5 0V5a1 1 0 0 0-1-1h-1v1.646a.25.25 0 0 1-.427.177L7.177 3.427a.25.25 0 0 1 0-.354M3.75 2.5a.75.75 0 1 0 0 1.5a.75.75 0 0 0 0-1.5m0 9.5a.75.75 0 1 0 0 1.5a.75.75 0 0 0 0-1.5m8.25.75a.75.75 0 1 0 1.5 0a.75.75 0 0 0-1.5 0"> class="h-5 w-5 pt-1 flex-none fill-success-content"
</path> >
</svg> <path d="M1.5 3.25a2.25 2.25 0 1 1 3 2.122v5.256a2.251 2.251 0 1 1-1.5 0V5.372A2.25 2.25 0 0 1 1.5 3.25m5.677-.177L9.573.677A.25.25 0 0 1 10 .854V2.5h1A2.5 2.5 0 0 1 13.5 5v5.628a2.251 2.251 0 1 1-1.5 0V5a1 1 0 0 0-1-1h-1v1.646a.25.25 0 0 1-.427.177L7.177 3.427a.25.25 0 0 1 0-.354M3.75 2.5a.75.75 0 1 0 0 1.5a.75.75 0 0 0 0-1.5m0 9.5a.75.75 0 1 0 0 1.5a.75.75 0 0 0 0-1.5m8.25.75a.75.75 0 1 0 1.5 0a.75.75 0 0 0-1.5 0">
Open </path>
</button> </svg>
<div class="inline mr-3 align-middle"> Open
opened a minute ago </button>
</div> <div class="inline mr-3 align-middle">
<div class="inline align-middle"> opened a minute ago
DanConwayDev </div>
<div class="inline align-middle">
DanConwayDev
</div>
</div>
</div> </div>
</div> </div>
</div> </div>
`; `;
exports[`PRs/Header Long and No Spaces smoke-test 1`] = ` exports[`PRs/Header Long and No Spaces smoke-test 1`] = `
<div class="overflow-hidden grow text-xs text-neutral-content bg-base-200 border-b border-accent-content pt-2 pb-4 px-3"> <div class="overflow-hidden grow text-xs text-neutral-content bg-base-200 border-b border-accent-content pt-2 pb-4">
<div class="text-lg text-base-content mb-2"> <div class="mx-auto lg:container">
LongNameLongNameLongNameLongNameLongNameLongNameLongNameLongNameL... <div class="px-3">
</div> <div class="text-lg text-base-content mb-2">
<div class="pt-1"> LongNameLongNameLongNameLongNameLongNameLongNameLongNameLongNameL...
<button class="btn btn-success btn-sm mr-3 align-middle"> </div>
<svg xmlns="http://www.w3.org/2000/svg" <div class="pt-1">
viewbox="0 0 18 18" <button class="btn btn-success btn-sm mr-3 align-middle">
class="h-5 w-5 pt-1 flex-none fill-success-content" <svg xmlns="http://www.w3.org/2000/svg"
> viewbox="0 0 18 18"
<path d="M1.5 3.25a2.25 2.25 0 1 1 3 2.122v5.256a2.251 2.251 0 1 1-1.5 0V5.372A2.25 2.25 0 0 1 1.5 3.25m5.677-.177L9.573.677A.25.25 0 0 1 10 .854V2.5h1A2.5 2.5 0 0 1 13.5 5v5.628a2.251 2.251 0 1 1-1.5 0V5a1 1 0 0 0-1-1h-1v1.646a.25.25 0 0 1-.427.177L7.177 3.427a.25.25 0 0 1 0-.354M3.75 2.5a.75.75 0 1 0 0 1.5a.75.75 0 0 0 0-1.5m0 9.5a.75.75 0 1 0 0 1.5a.75.75 0 0 0 0-1.5m8.25.75a.75.75 0 1 0 1.5 0a.75.75 0 0 0-1.5 0"> class="h-5 w-5 pt-1 flex-none fill-success-content"
</path> >
</svg> <path d="M1.5 3.25a2.25 2.25 0 1 1 3 2.122v5.256a2.251 2.251 0 1 1-1.5 0V5.372A2.25 2.25 0 0 1 1.5 3.25m5.677-.177L9.573.677A.25.25 0 0 1 10 .854V2.5h1A2.5 2.5 0 0 1 13.5 5v5.628a2.251 2.251 0 1 1-1.5 0V5a1 1 0 0 0-1-1h-1v1.646a.25.25 0 0 1-.427.177L7.177 3.427a.25.25 0 0 1 0-.354M3.75 2.5a.75.75 0 1 0 0 1.5a.75.75 0 0 0 0-1.5m0 9.5a.75.75 0 1 0 0 1.5a.75.75 0 0 0 0-1.5m8.25.75a.75.75 0 1 0 1.5 0a.75.75 0 0 0-1.5 0">
Open </path>
</button> </svg>
<div class="inline mr-3 align-middle"> Open
opened 3 months ago </button>
</div> <div class="inline mr-3 align-middle">
<div class="inline align-middle"> opened 3 months ago
DanConwayDev </div>
<div class="inline align-middle">
DanConwayDev
</div>
</div>
</div> </div>
</div> </div>
</div> </div>
`; `;
exports[`PRs/Header Short Details smoke-test 1`] = ` exports[`PRs/Header Short Details smoke-test 1`] = `
<div class="overflow-hidden grow text-xs text-neutral-content bg-base-200 border-b border-accent-content pt-2 pb-4 px-3"> <div class="overflow-hidden grow text-xs text-neutral-content bg-base-200 border-b border-accent-content pt-2 pb-4">
<div class="text-lg text-base-content mb-2"> <div class="mx-auto lg:container">
short title <div class="px-3">
</div> <div class="text-lg text-base-content mb-2">
<div class="pt-1"> short title
<button class="btn btn-success btn-sm mr-3 align-middle"> </div>
<svg xmlns="http://www.w3.org/2000/svg" <div class="pt-1">
viewbox="0 0 18 18" <button class="btn btn-success btn-sm mr-3 align-middle">
class="h-5 w-5 pt-1 flex-none fill-success-content" <svg xmlns="http://www.w3.org/2000/svg"
> viewbox="0 0 18 18"
<path d="M1.5 3.25a2.25 2.25 0 1 1 3 2.122v5.256a2.251 2.251 0 1 1-1.5 0V5.372A2.25 2.25 0 0 1 1.5 3.25m5.677-.177L9.573.677A.25.25 0 0 1 10 .854V2.5h1A2.5 2.5 0 0 1 13.5 5v5.628a2.251 2.251 0 1 1-1.5 0V5a1 1 0 0 0-1-1h-1v1.646a.25.25 0 0 1-.427.177L7.177 3.427a.25.25 0 0 1 0-.354M3.75 2.5a.75.75 0 1 0 0 1.5a.75.75 0 0 0 0-1.5m0 9.5a.75.75 0 1 0 0 1.5a.75.75 0 0 0 0-1.5m8.25.75a.75.75 0 1 0 1.5 0a.75.75 0 0 0-1.5 0"> class="h-5 w-5 pt-1 flex-none fill-success-content"
</path> >
</svg> <path d="M1.5 3.25a2.25 2.25 0 1 1 3 2.122v5.256a2.251 2.251 0 1 1-1.5 0V5.372A2.25 2.25 0 0 1 1.5 3.25m5.677-.177L9.573.677A.25.25 0 0 1 10 .854V2.5h1A2.5 2.5 0 0 1 13.5 5v5.628a2.251 2.251 0 1 1-1.5 0V5a1 1 0 0 0-1-1h-1v1.646a.25.25 0 0 1-.427.177L7.177 3.427a.25.25 0 0 1 0-.354M3.75 2.5a.75.75 0 1 0 0 1.5a.75.75 0 0 0 0-1.5m0 9.5a.75.75 0 1 0 0 1.5a.75.75 0 0 0 0-1.5m8.25.75a.75.75 0 1 0 1.5 0a.75.75 0 0 0-1.5 0">
Open </path>
</button> </svg>
<div class="inline mr-3 align-middle"> Open
opened 7 days ago </button>
</div> <div class="inline mr-3 align-middle">
<div class="inline align-middle"> opened 7 days ago
DanConwayDev </div>
<div class="inline align-middle">
DanConwayDev
</div>
</div>
</div> </div>
</div> </div>
</div> </div>
`; `;
exports[`PRs/Header loading smoke-test 1`] = ` exports[`PRs/Header loading smoke-test 1`] = `
<div class="overflow-hidden grow text-xs text-neutral-content bg-base-200 border-b border-accent-content pt-2 pb-4 px-3"> <div class="overflow-hidden grow text-xs text-neutral-content bg-base-200 border-b border-accent-content pt-2 pb-4">
<div> <div class="mx-auto lg:container">
<div class="h-7 w-60 pt-1 skeleton"> <div class="px-3">
</div> <div>
<div class> <div class="h-7 w-60 pt-1 skeleton">
<div class="h-8 w-20 mt-3 skeleton align-middle inline-block"> </div>
</div> <div class>
<div class="h-3 w-28 ml-3 mt-5 align-middle skeleton inline-block"> <div class="h-8 w-20 mt-3 skeleton align-middle inline-block">
</div> </div>
<div class="h-3 w-28 ml-3 mt-5 align-middle skeleton inline-block"> <div class="h-3 w-28 ml-3 mt-5 align-middle skeleton inline-block">
</div>
<div class="h-3 w-28 ml-3 mt-5 align-middle skeleton inline-block">
</div>
</div>
</div> </div>
</div> </div>
</div> </div>

BIN
__snapshots__/repo-header--loading.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.3 KiB

After

Width:  |  Height:  |  Size: 5.6 KiB

BIN
__snapshots__/repo-header--long-name.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 15 KiB

BIN
__snapshots__/repo-header--no-name.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.5 KiB

After

Width:  |  Height:  |  Size: 7.3 KiB

BIN
__snapshots__/repo-header--short-name.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.1 KiB

After

Width:  |  Height:  |  Size: 8.2 KiB

42
__snapshots__/repo-header.test.js.snap

@ -1,46 +1,46 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP // Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`Repo/Header Long Name smoke-test 1`] = ` exports[`Repo/Header Long Name smoke-test 1`] = `
<div class="bg-base-300 py-2 border-b border-accent-content"> <div class="bg-base-300 border-b border-accent-content">
<div class="mx-auto lg:container"> <div class="mx-auto lg:container">
<div class="max-w-md prose px-3"> <a href="/repo/9ee507fc4357d7ee16a5d8901bedcd103f23c17d"
<h4 class="text-sm my-1 break-words"> class="btn btn-ghost text-sm break-words strong mt-0 mb-0 px-3"
Long Name that goes on and on and on and on a... >
</h4> Long Name that goes on and on and on and on a...
</div> </a>
</div> </div>
</div> </div>
`; `;
exports[`Repo/Header No Name smoke-test 1`] = ` exports[`Repo/Header No Name smoke-test 1`] = `
<div class="bg-base-300 py-2 border-b border-accent-content"> <div class="bg-base-300 border-b border-accent-content">
<div class="mx-auto lg:container"> <div class="mx-auto lg:container">
<div class="max-w-md prose px-3"> <a href="/repo/9ee507fc4357d7ee16a5d8901bedcd103f23c17d"
<h4 class="text-sm my-1 break-words"> class="btn btn-ghost text-sm break-words strong mt-0 mb-0 px-3"
Untitled >
</h4> Untitled
</div> </a>
</div> </div>
</div> </div>
`; `;
exports[`Repo/Header Short Name smoke-test 1`] = ` exports[`Repo/Header Short Name smoke-test 1`] = `
<div class="bg-base-300 py-2 border-b border-accent-content"> <div class="bg-base-300 border-b border-accent-content">
<div class="mx-auto lg:container"> <div class="mx-auto lg:container">
<div class="max-w-md prose px-3"> <a href="/repo/9ee507fc4357d7ee16a5d8901bedcd103f23c17d"
<h4 class="text-sm my-1 break-words"> class="btn btn-ghost text-sm break-words strong mt-0 mb-0 px-3"
Short Name >
</h4> Short Name
</div> </a>
</div> </div>
</div> </div>
`; `;
exports[`Repo/Header loading smoke-test 1`] = ` exports[`Repo/Header loading smoke-test 1`] = `
<div class="bg-base-300 py-2 border-b border-accent-content"> <div class="bg-base-300 border-b border-accent-content">
<div class="mx-auto lg:container"> <div class="mx-auto lg:container">
<div class="max-w-md prose px-3"> <div class="p-3">
<div class="h-5 my-2 skeleton w-28"> <div class="h-6 skeleton w-28 bg-base-200">
</div> </div>
</div> </div>
</div> </div>

13
src/lib/components/Container.svelte

@ -0,0 +1,13 @@
<script lang="ts">
export let no_wrap: boolean = false;
</script>
<div class="mx-auto lg:container">
{#if no_wrap}
<slot />
{:else}
<div class="px-3">
<slot />
</div>
{/if}
</div>

26
src/lib/components/Navbar.svelte

@ -1,23 +1,27 @@
<script lang="ts"> <script lang="ts">
import Container from "./Container.svelte";
export let nip07plugin: boolean = false; export let nip07plugin: boolean = false;
</script> </script>
<div class="bg-neutral"> <div class="bg-base-400">
<div class="mx-auto lg:container bg-neutral"> <Container>
<div class="navbar"> <div class="navbar">
<div class="flex-1"> <div class="navbar-start"></div>
<h4> <div class="navbar-center">
<span class="primary">git</span> <h4 class="align-middle text-sm font-mono">
<span class="">together</span> <span class="text-primary">git</span><span class="text-primary"
<span class="">.xyz</span> >workshop</span
><span class="">.net</span>
</h4> </h4>
</div> </div>
<div class="flex-none gap-4"> <div class="navbar-end gap-4">
{#if !nip07plugin} {#if !nip07plugin}
<div class="btn btn-primary normal-case">Sign up</div> <div class="btn normal-case btn-sm btn-ghost">Sign up</div>
{:else}
<button class="btn normal-case btn-sm btn-ghost">Login</button>
{/if} {/if}
<button class="btn btn-outline normal-case">Login</button>
</div> </div>
</div> </div>
</div> </Container>
</div> </div>

85
src/lib/components/prs/PRHeader.svelte

@ -6,6 +6,7 @@
import relativeTime from "dayjs/plugin/relativeTime"; import relativeTime from "dayjs/plugin/relativeTime";
import { summary_defaults } from "./type"; import { summary_defaults } from "./type";
import { getName } from "../users/type"; import { getName } from "../users/type";
import Container from "../Container.svelte";
dayjs.extend(relativeTime); dayjs.extend(relativeTime);
export let { title, id, repo_id, comments, author, created_at, loading } = export let { title, id, repo_id, comments, author, created_at, loading } =
@ -25,49 +26,51 @@
</script> </script>
<div <div
class="overflow-hidden grow text-xs text-neutral-content bg-base-200 border-b border-accent-content pt-2 pb-4 px-3" class="overflow-hidden grow text-xs text-neutral-content bg-base-200 border-b border-accent-content pt-2 pb-4"
> >
{#if loading} <Container>
<div> {#if loading}
<div class="h-7 w-60 pt-1 skeleton"></div> <div>
<div class=""> <div class="h-7 w-60 pt-1 skeleton"></div>
<div <div class="">
class="h-8 w-20 mt-3 skeleton align-middle inline-block" <div
></div> class="h-8 w-20 mt-3 skeleton align-middle inline-block"
<div ></div>
class="h-3 w-28 ml-3 mt-5 align-middle skeleton inline-block" <div
></div> class="h-3 w-28 ml-3 mt-5 align-middle skeleton inline-block"
<div ></div>
class="h-3 w-28 ml-3 mt-5 align-middle skeleton inline-block" <div
></div> class="h-3 w-28 ml-3 mt-5 align-middle skeleton inline-block"
></div>
</div>
</div> </div>
</div> {:else}
{:else} <div class="text-lg text-base-content mb-2">
<div class="text-lg text-base-content mb-2"> {short_title}
{short_title}
</div>
<div class="pt-1">
<button class="btn btn-success btn-sm mr-3 align-middle">
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 18 18"
class="h-5 w-5 pt-1 flex-none fill-success-content"
><path
d="M1.5 3.25a2.25 2.25 0 1 1 3 2.122v5.256a2.251 2.251 0 1 1-1.5 0V5.372A2.25 2.25 0 0 1 1.5 3.25m5.677-.177L9.573.677A.25.25 0 0 1 10 .854V2.5h1A2.5 2.5 0 0 1 13.5 5v5.628a2.251 2.251 0 1 1-1.5 0V5a1 1 0 0 0-1-1h-1v1.646a.25.25 0 0 1-.427.177L7.177 3.427a.25.25 0 0 1 0-.354M3.75 2.5a.75.75 0 1 0 0 1.5a.75.75 0 0 0 0-1.5m0 9.5a.75.75 0 1 0 0 1.5a.75.75 0 0 0 0-1.5m8.25.75a.75.75 0 1 0 1.5 0a.75.75 0 0 0-1.5 0"
/>
</svg>
Open
</button>
<div class="inline mr-3 align-middle">
opened {created_at_ago}
</div> </div>
<div class="inline align-middle"> <div class="pt-1">
{#if author.loading} <button class="btn btn-success btn-sm mr-3 align-middle">
<div class="skeleton h-3 pb-2 w-20 inline-block"></div> <svg
{:else} xmlns="http://www.w3.org/2000/svg"
{author_name} viewBox="0 0 18 18"
{/if} class="h-5 w-5 pt-1 flex-none fill-success-content"
><path
d="M1.5 3.25a2.25 2.25 0 1 1 3 2.122v5.256a2.251 2.251 0 1 1-1.5 0V5.372A2.25 2.25 0 0 1 1.5 3.25m5.677-.177L9.573.677A.25.25 0 0 1 10 .854V2.5h1A2.5 2.5 0 0 1 13.5 5v5.628a2.251 2.251 0 1 1-1.5 0V5a1 1 0 0 0-1-1h-1v1.646a.25.25 0 0 1-.427.177L7.177 3.427a.25.25 0 0 1 0-.354M3.75 2.5a.75.75 0 1 0 0 1.5a.75.75 0 0 0 0-1.5m0 9.5a.75.75 0 1 0 0 1.5a.75.75 0 0 0 0-1.5m8.25.75a.75.75 0 1 0 1.5 0a.75.75 0 0 0-1.5 0"
/>
</svg>
Open
</button>
<div class="inline mr-3 align-middle">
opened {created_at_ago}
</div>
<div class="inline align-middle">
{#if author.loading}
<div class="skeleton h-3 pb-2 w-20 inline-block"></div>
{:else}
{author_name}
{/if}
</div>
</div> </div>
</div> {/if}
{/if} </Container>
</div> </div>

25
src/lib/components/repo/RepoHeader.svelte

@ -5,6 +5,7 @@
<script lang="ts"> <script lang="ts">
import type { User } from "$lib/components/users/type"; import type { User } from "$lib/components/users/type";
import UserHeader from "$lib/components/users/UserHeader.svelte"; import UserHeader from "$lib/components/users/UserHeader.svelte";
import Container from "../Container.svelte";
import { defaults } from "./type"; import { defaults } from "./type";
export let { export let {
@ -25,14 +26,18 @@
} }
</script> </script>
<div class="bg-base-300 py-2 border-b border-accent-content"> <div class="bg-base-300 border-b border-accent-content">
<div class="mx-auto lg:container"> <Container no_wrap={true}>
<div class="max-w-md prose px-3"> {#if loading}
{#if loading} <div class="p-3">
<div class="h-5 my-2 skeleton w-28"></div> <div class="h-6 skeleton w-28 bg-base-200"></div>
{:else} </div>
<h4 class="text-sm my-1 break-words">{short_name}</h4> {:else}
{/if} <a
</div> href={`/repo/${repo_id}`}
</div> class="btn btn-ghost text-sm break-words strong mt-0 mb-0 px-3"
>{short_name}</a
>
{/if}
</Container>
</div> </div>

4
src/routes/+layout.svelte

@ -5,6 +5,4 @@
<Navbar /> <Navbar />
<div class="mx-auto lg:container"> <slot />
<slot />
</div>

18
src/routes/repo/[repo_id]/+page.svelte

@ -3,6 +3,7 @@
import OpenPRs from "$lib/wrappers/OpenPRs.svelte"; import OpenPRs from "$lib/wrappers/OpenPRs.svelte";
import { ensureSelectedRepo, selected_repo } from "$lib/stores/repo"; import { ensureSelectedRepo, selected_repo } from "$lib/stores/repo";
import RepoHeader from "$lib/components/repo/RepoHeader.svelte"; import RepoHeader from "$lib/components/repo/RepoHeader.svelte";
import Container from "$lib/components/Container.svelte";
export let data: { repo_id: string }; export let data: { repo_id: string };
let repo_id = data.repo_id; let repo_id = data.repo_id;
@ -11,11 +12,14 @@
</script> </script>
<RepoHeader {...$selected_repo} /> <RepoHeader {...$selected_repo} />
<div class="flex">
<div class="w-2/3 mx-2"> <Container>
<OpenPRs {repo_id} /> <div class="md:flex mt-2">
</div> <div class="md:w-2/3 md:mr-2">
<div class="w-1/3 mx-2 prose"> <OpenPRs {repo_id} />
<RepoDetails {repo_id} /> </div>
<div class="w-1/3 ml-2 prose hidden md:flex">
<RepoDetails {repo_id} />
</div>
</div> </div>
</div> </Container>

39
src/routes/repo/[repo_id]/pr/[pr_id]/+page.svelte

@ -9,6 +9,7 @@
import RepoHeader from "$lib/components/repo/RepoHeader.svelte"; import RepoHeader from "$lib/components/repo/RepoHeader.svelte";
import Thread from "$lib/wrappers/Thread.svelte"; import Thread from "$lib/wrappers/Thread.svelte";
import PrDetails from "$lib/components/prs/PRDetails.svelte"; import PrDetails from "$lib/components/prs/PRDetails.svelte";
import Container from "$lib/components/Container.svelte";
export let data: { export let data: {
repo_id: string; repo_id: string;
@ -25,24 +26,26 @@
<RepoHeader {...$selected_repo} /> <RepoHeader {...$selected_repo} />
<PrHeader {...$selected_pr_full.summary} /> <PrHeader {...$selected_pr_full.summary} />
<div class="flex"> <Container>
<div class="w-2/3 mx-2"> <div class="md:flex">
<div class="prose my-3"> <div class="md:w-2/3 md:mr-2">
{$selected_pr_full.summary.descritpion} <div class="prose my-3">
{$selected_pr_full.summary.descritpion}
</div>
{#if $selected_pr_full.pr_event}
<Thread
event={$selected_pr_full.pr_event}
replies={$selected_pr_replies}
/>
{/if}
</div> </div>
{#if $selected_pr_full.pr_event} <div class="w-1/3 ml-2 prose hidden md:flex">
<Thread <PrDetails
event={$selected_pr_full.pr_event} summary={$selected_pr_full.summary}
replies={$selected_pr_replies} status={$selected_pr_full.status}
labels={$selected_pr_full.labels}
loading={$selected_pr_full.loading}
/> />
{/if} </div>
</div>
<div class="w-1/3 mx-2 prose">
<PrDetails
summary={$selected_pr_full.summary}
status={$selected_pr_full.status}
labels={$selected_pr_full.labels}
loading={$selected_pr_full.loading}
/>
</div> </div>
</div> </Container>

14
tailwind.config.js

@ -1,15 +1,21 @@
/** @type {import('tailwindcss').Config} */ /** @type {import('tailwindcss').Config} */
export default { export default {
content: [ './src/**/*.{svelte,js,ts}' ], content: ['./src/**/*.{svelte,js,ts}'],
theme: { theme: {
extend: {}, extend: {
colors: {
"base-400": "#16171e",
},
},
}, },
plugins: [ plugins: [
require('@tailwindcss/typography'), require('@tailwindcss/typography'),
require('daisyui'), require('daisyui'),
], ],
daisyui: { daisyui: {
themes: [ 'dracula'], themes: ['dracula'],
} }
} }

Loading…
Cancel
Save