Skip to content

Commit 8970ab7

Browse files
committed
Hide comparison dropdown when there's nothing to compare against
Closes #71
1 parent 71cce2a commit 8970ab7

File tree

1 file changed

+85
-73
lines changed

1 file changed

+85
-73
lines changed

src/lib/leftSidebar/Choose.svelte

+85-73
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@
8181
let allScenariosExceptCompare: string[];
8282
let decreaseScenarioOk: boolean;
8383
let increaseScenarioOk: boolean;
84-
let allCompareScenariosExceptMain: Array<string | null>;
84+
let allCompareScenariosExceptMain: Array<string | null> = [null];
8585
let decreaseCompareScenarioOk: boolean;
8686
let increaseCompareScenarioOk: boolean;
8787
@@ -128,13 +128,15 @@
128128
? null
129129
: $allScenarios.get($compareScenarioName);
130130
131-
descriptionLines = scenario.metadata.description.replace(/\r/g, "").split(/\n+/),
132-
compareDescriptionLines =
133-
$compareScenarioName === null
134-
? null
135-
: compareScenario.metadata.description
136-
.replace(/\r/g, "")
137-
.split(/\n+/);
131+
(descriptionLines = scenario.metadata.description
132+
.replace(/\r/g, "")
133+
.split(/\n+/)),
134+
(compareDescriptionLines =
135+
$compareScenarioName === null
136+
? null
137+
: compareScenario.metadata.description
138+
.replace(/\r/g, "")
139+
.split(/\n+/));
138140
139141
allScenariosExceptCompare = allScenarioNames.filter(
140142
(s) => s !== $compareScenarioName
@@ -223,75 +225,84 @@ modelled development strategies on any of the four indicators.
223225
{/if}
224226

225227
<h3>Compare against</h3>
226-
<div class="controls-grid">
227-
<button
228-
class="controls"
229-
on:click={decreaseCompareScenario}
230-
disabled={!decreaseCompareScenarioOk}
231-
>
232-
<img
233-
class="control-arrows"
234-
src={decreaseCompareScenarioOk ? leftIcon : leftIconDisabled}
235-
alt="Decrease compare scenario"
236-
/>
237-
</button>
238-
<select
239-
id="compare"
240-
bind:value={$compareScenarioName}
241-
on:change={changeScenario}
242-
>
243-
<option value={null}>None</option>
244-
{#each [...$allScenarios.entries()] as [name, compareScenario]}
245-
{#if name !== $scenarioName}
246-
<option value={name}>{compareScenario.metadata.long}</option>
247-
{/if}
248-
{/each}
249-
</select>
250-
<button
251-
class="controls"
252-
on:click={increaseCompareScenario}
253-
disabled={!increaseCompareScenarioOk}
254-
>
255-
<img
256-
class="control-arrows"
257-
src={increaseCompareScenarioOk ? rightIcon : rightIconDisabled}
258-
alt="Increase compare scenario"
259-
/>
260-
</button>
261-
{#if $compareScenarioName !== null}
228+
{#if allCompareScenariosExceptMain.length === 1 && $compareScenarioName === null}
229+
<p class="no-bottom-margin">
230+
There are currently no other scenarios to compare against. You can
231+
create a new scenario, or import a previously defined scenario, using
232+
the tabs above.
233+
</p>
234+
{:else}
235+
<div class="controls-grid">
262236
<button
263-
class="toggle-description"
264-
on:click={toggleCompareDescriptionVisible}
265-
transition:slide|local={{ duration: 300 }}
237+
class="controls"
238+
on:click={decreaseCompareScenario}
239+
disabled={!decreaseCompareScenarioOk}
266240
>
267-
<span class="instruction"
268-
>{compareDescriptionVisible
269-
? "hide description"
270-
: "show description"}</span
271-
>
272-
<span class="small-icon"
273-
>{compareDescriptionVisible ? "" : ""}</span
274-
>
241+
<img
242+
class="control-arrows"
243+
src={decreaseCompareScenarioOk ? leftIcon : leftIconDisabled}
244+
alt="Decrease compare scenario"
245+
/>
275246
</button>
276-
{/if}
277-
</div>
278-
279-
{#if compareDescriptionVisible && $compareScenarioName !== null}
280-
<div id="compare-scenario-description-container" transition:slide|local>
281-
{#key $compareScenarioName}
282-
<div
283-
id="compare-scenario-description"
284-
in:customFlyInCmp|local
285-
out:customFlyOutCmp|local
286-
on:outrostart={setMaxHeightToZero}
247+
<select
248+
id="compare"
249+
bind:value={$compareScenarioName}
250+
on:change={changeScenario}
251+
>
252+
<option value={null}>None</option>
253+
{#each [...$allScenarios.entries()] as [name, compareScenario]}
254+
{#if name !== $scenarioName}
255+
<option value={name}>{compareScenario.metadata.long}</option
256+
>
257+
{/if}
258+
{/each}
259+
</select>
260+
<button
261+
class="controls"
262+
on:click={increaseCompareScenario}
263+
disabled={!increaseCompareScenarioOk}
264+
>
265+
<img
266+
class="control-arrows"
267+
src={increaseCompareScenarioOk ? rightIcon : rightIconDisabled}
268+
alt="Increase compare scenario"
269+
/>
270+
</button>
271+
{#if $compareScenarioName !== null}
272+
<button
273+
class="toggle-description"
274+
on:click={toggleCompareDescriptionVisible}
275+
transition:slide|local={{ duration: 300 }}
287276
>
288-
<p>{compareDescriptionLines[0]}</p>
289-
{#each compareDescriptionLines.slice(1) as para}
290-
<p>{para}</p>
291-
{/each}
292-
</div>
293-
{/key}
277+
<span class="instruction"
278+
>{compareDescriptionVisible
279+
? "hide description"
280+
: "show description"}</span
281+
>
282+
<span class="small-icon"
283+
>{compareDescriptionVisible ? "" : ""}</span
284+
>
285+
</button>
286+
{/if}
294287
</div>
288+
289+
{#if compareDescriptionVisible && $compareScenarioName !== null}
290+
<div id="compare-scenario-description-container" transition:slide|local>
291+
{#key $compareScenarioName}
292+
<div
293+
id="compare-scenario-description"
294+
in:customFlyInCmp|local
295+
out:customFlyOutCmp|local
296+
on:outrostart={setMaxHeightToZero}
297+
>
298+
<p>{compareDescriptionLines[0]}</p>
299+
{#each compareDescriptionLines.slice(1) as para}
300+
<p>{para}</p>
301+
{/each}
302+
</div>
303+
{/key}
304+
</div>
305+
{/if}
295306
{/if}
296307

297308
<style>
@@ -383,7 +394,8 @@ modelled development strategies on any of the four indicators.
383394
margin-top: 0 !important;
384395
}
385396
div#scenario-description > :last-child,
386-
div#compare-scenario-description > :last-child {
397+
div#compare-scenario-description > :last-child,
398+
.no-bottom-margin {
387399
margin-bottom: 0 !important;
388400
}
389401
</style>

0 commit comments

Comments
 (0)