Skip to content

Commit

Permalink
fix: add headerClass and footerClass to Textarea, #1380
Browse files Browse the repository at this point in the history
  • Loading branch information
shinokada committed Jun 30, 2024
1 parent 62b2f03 commit 6ff73c2
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 3 deletions.
5 changes: 5 additions & 0 deletions .changeset/shiny-carrots-sleep.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'flowbite-svelte': patch
---

fix: add headerClass and footerClass to Textarea, #1380
8 changes: 5 additions & 3 deletions src/lib/forms/Textarea.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@
export let wrappedClass: string = 'block w-full text-sm border-0 px-0 bg-inherit dark:bg-inherit focus:outline-none focus:ring-0 disabled:cursor-not-allowed disabled:opacity-50';
export let unWrappedClass: string = 'p-2.5 text-sm focus:ring-primary-500 border-gray-300 focus:border-primary-500 dark:focus:ring-primary-500 dark:focus:border-primary-500 disabled:cursor-not-allowed disabled:opacity-50';
export let innerWrappedClass: string = 'py-2 px-4 bg-white dark:bg-gray-800';
export let headerClass: string = ''
export let footerClass: string = '';
let wrapped: boolean;
$: wrapped = $$slots.header || $$slots.footer;
Expand All @@ -18,23 +20,23 @@
let textareaClass: string;
$: textareaClass = wrapped ? wrappedClass : twMerge(wrapperClass, unWrappedClass);
const headerClass = (header: boolean) => twMerge(header ? 'border-b' : 'border-t', 'py-2 px-3 border-gray-200', background ? 'dark:border-gray-500' : 'dark:border-gray-600');
const headerCls = (header: boolean) => twMerge(header ? 'border-b' : 'border-t', 'py-2 px-3 border-gray-200', background ? 'dark:border-gray-500' : 'dark:border-gray-600', header ? headerClass : footerClass);
let innerWrapperClass: string;
$: innerWrapperClass = twMerge(innerWrappedClass, $$slots.footer ? '' : 'rounded-b-lg', $$slots.header ? '' : 'rounded-t-lg');
</script>

<Wrapper show={wrapped} class={wrapperClass}>
{#if $$slots.header}
<div class={headerClass(true)}>
<div class={headerCls(true)}>
<slot name="header"></slot>
</div>
{/if}
<Wrapper show={wrapped} class={innerWrapperClass}>
<textarea bind:value on:blur on:change on:click on:contextmenu on:focus on:input on:keydown on:keypress on:keyup on:mouseenter on:mouseleave on:mouseover on:paste on:select {...$$restProps} class={textareaClass}></textarea>
</Wrapper>
{#if $$slots.footer}
<div class={headerClass(false)}>
<div class={headerCls(false)}>
<slot name="footer"></slot>
</div>
{/if}
Expand Down

0 comments on commit 6ff73c2

Please sign in to comment.