File size: 1,444 Bytes
b2ecf7d
76d4920
49cc62d
b2ecf7d
76d4920
 
b2ecf7d
 
 
 
 
 
 
76d4920
 
 
 
b2ecf7d
 
76d4920
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
d738fa8
76d4920
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<script lang="ts">
	import { createEventDispatcher } from "svelte";
	import { onCmdEnter } from "../../../../utils/ViewUtils.js";
	import WidgetSubmitBtn from "../WidgetSubmitBtn/WidgetSubmitBtn.svelte";
	import { isLoggedIn } from "../../stores.js";
	import LogInPopover from "../../../LogInPopover/LogInPopover.svelte";

	export let flatTop = false;
	export let isLoading: boolean;
	export let isDisabled = false;
	export let placeholder = "Your sentence here...";
	export let submitButtonLabel: string | undefined = undefined;
	export let value: string = "";

	let popOverOpen = false;

	const dispatch = createEventDispatcher<{ cmdEnter: void }>();
</script>

<LogInPopover bind:open={popOverOpen}>
	<div class="flex h-10">
		<input
			bind:value
			class="form-input-alt min-w-0 flex-1 rounded-r-none {flatTop ? 'rounded-t-none' : ''}"
			placeholder={isDisabled ? "" : placeholder}
			required={true}
			type="text"
			disabled={isLoading || isDisabled}
			autocomplete="off"
			use:onCmdEnter={{ disabled: isLoading || isDisabled }}
			on:cmdEnter={() => {
				if (!$isLoggedIn) {
					popOverOpen = true;
					return;
				}
				dispatch("cmdEnter");
			}}
		/>
		<WidgetSubmitBtn
			classNames="rounded-l-none border-l-0 {flatTop ? 'rounded-t-none' : ''}"
			{isLoading}
			{isDisabled}
			label={submitButtonLabel}
			withParentLoginPopover={true}
			on:run
			on:logInPopover={() => (popOverOpen = true)}
		/>
	</div>
</LogInPopover>