mirror of
https://github.com/BradNut/boredgame
synced 2025-09-08 17:40:22 +00:00
Keeping advanced search open if error and using Skeleton on search results.
This commit is contained in:
parent
5fb3e910e6
commit
71b525a5b1
5 changed files with 50 additions and 21 deletions
|
|
@ -74,6 +74,7 @@
|
|||
|
||||
.bx--skeleton__placeholder {
|
||||
--cds-skeleton-01: #474747;
|
||||
border-radius: var(--borderRadius);
|
||||
position: relative;
|
||||
padding: 0;
|
||||
border: none;
|
||||
|
|
@ -94,6 +95,7 @@
|
|||
|
||||
.bx--skeleton__placeholder::before {
|
||||
--cds-skeleton-02: #525252;
|
||||
border-radius: var(--borderRadius);
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
|
|
|
|||
|
|
@ -3,11 +3,11 @@
|
|||
import { boredState } from '$lib/stores/boredState';
|
||||
|
||||
export let form: ActionData;
|
||||
console.log('advanced search form', form);
|
||||
console.log('advanced search form data', form);
|
||||
let submitting = $boredState?.loading;
|
||||
let minAge = form?.minAge || 1;
|
||||
let minPlayers = form?.minPlayers || 1;
|
||||
let maxPlayers = form?.maxPlayers || 1;
|
||||
let minAge = +form?.minAge || 1;
|
||||
let minPlayers = +form?.minPlayers || 1;
|
||||
let maxPlayers = +form?.maxPlayers || 1;
|
||||
let exactMinPlayers = form?.exactMinPlayers || false;
|
||||
let exactMaxPlayers = form?.exactMaxPlayers || false;
|
||||
</script>
|
||||
|
|
@ -41,9 +41,11 @@
|
|||
/>
|
||||
</label>
|
||||
{#if form?.error?.id === 'minPlayers'}
|
||||
<p aria-label={`Error: ${form.error.message}`} class="center error">
|
||||
Error: {form.error.message}
|
||||
</p>
|
||||
<div id="minPlayers-error" class="error">
|
||||
<p aria-label={`Error: ${form.error.message}`} class="center">
|
||||
Error: {form.error.message}
|
||||
</p>
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
<div>
|
||||
|
|
@ -68,9 +70,11 @@
|
|||
/>
|
||||
</label>
|
||||
{#if form?.error?.id === 'maxPlayers'}
|
||||
<p aria-label={`Error: ${form.error.message}`} class="center error">
|
||||
Error: {form.error.message}
|
||||
</p>
|
||||
<div id="maxPlayers-error" class="error">
|
||||
<p aria-label={`Error: ${form.error.message}`} class="center">
|
||||
Error: {form.error.message}
|
||||
</p>
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
</fieldset>
|
||||
|
|
|
|||
|
|
@ -11,6 +11,10 @@
|
|||
|
||||
let submitting = $boredState?.loading;
|
||||
let name = form?.name || '';
|
||||
let disclosureOpen = false;
|
||||
if (form?.error) {
|
||||
disclosureOpen = true;
|
||||
}
|
||||
</script>
|
||||
|
||||
<div class="search">
|
||||
|
|
@ -28,18 +32,21 @@
|
|||
</label>
|
||||
</fieldset>
|
||||
{#if advancedSearch}
|
||||
<Disclosure let:open>
|
||||
<DisclosureButton class="disclosure-button">
|
||||
<Disclosure>
|
||||
<DisclosureButton
|
||||
class="disclosure-button"
|
||||
on:click={() => (disclosureOpen = !disclosureOpen)}
|
||||
>
|
||||
<span>Advanced Search?</span>
|
||||
<ChevronRightIcon
|
||||
class="icon disclosure-icon"
|
||||
style={open
|
||||
style={disclosureOpen
|
||||
? 'transform: rotate(90deg); transition: transform 0.5s ease;'
|
||||
: 'transform: rotate(0deg); transition: transform 0.5s ease;'}
|
||||
/>
|
||||
</DisclosureButton>
|
||||
|
||||
{#if open}
|
||||
{#if disclosureOpen}
|
||||
<div transition:fade>
|
||||
<!-- Using `static`, `DisclosurePanel` is always rendered,
|
||||
and ignores the `open` state -->
|
||||
|
|
|
|||
|
|
@ -20,6 +20,9 @@
|
|||
console.log('Formed data:', JSON.stringify(data));
|
||||
let pageSize: number;
|
||||
let currentPage: number;
|
||||
let submitting = $boredState?.loading;
|
||||
console.log({ submitting });
|
||||
|
||||
$: totalItems = 0;
|
||||
console.log('totalItems', totalItems);
|
||||
|
||||
|
|
@ -51,9 +54,7 @@
|
|||
}));
|
||||
}
|
||||
|
||||
let isOpen: boolean = false;
|
||||
let gameToRemove: GameType | SavedGameType;
|
||||
console.log('isOpen', isOpen);
|
||||
|
||||
interface RemoveGameEvent extends Event {
|
||||
detail: GameType | SavedGameType;
|
||||
|
|
@ -144,7 +145,21 @@
|
|||
/>
|
||||
{/each}
|
||||
</div>
|
||||
<!-- <Pagination
|
||||
</div>
|
||||
{:else if $boredState.loading}
|
||||
<div class="games">
|
||||
<h1>Games Found:</h1>
|
||||
<div class="games-list">
|
||||
{#each [1, 2, 3, 4] as game, i}
|
||||
<SkeletonPlaceholder
|
||||
style="width: 100%; height: 500px; border-radius: var(--borderRadius);"
|
||||
/>
|
||||
{/each}
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
<!-- <Pagination
|
||||
{pageSize}
|
||||
{currentPage}
|
||||
{totalItems}
|
||||
|
|
@ -155,9 +170,6 @@
|
|||
on:previousPageEvent={(event) => console.log('Prev page called', event)}
|
||||
on:perPageEvent={(event) => console.log('Per page called', event)}
|
||||
/> -->
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
<style lang="scss">
|
||||
.game-search {
|
||||
display: grid;
|
||||
|
|
|
|||
|
|
@ -355,7 +355,11 @@ ol {
|
|||
}
|
||||
|
||||
.error {
|
||||
color: var(--tomatoOrange);
|
||||
margin: 1rem;
|
||||
padding: 0.5rem;
|
||||
border-radius: var(--borderRadius);
|
||||
background-color: var(--tomatoOrange);
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
/* Base Dialog Styles */
|
||||
|
|
|
|||
Loading…
Reference in a new issue