Skip to content

Instantly share code, notes, and snippets.

@dsazup
Forked from tanthammar/trix.blade.php
Created October 24, 2020 21:58
Show Gist options
  • Save dsazup/1062c63882f264e3574cffa63bb36b62 to your computer and use it in GitHub Desktop.
Save dsazup/1062c63882f264e3574cffa63bb36b62 to your computer and use it in GitHub Desktop.
Livewire trix input
@push('body-styles')
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/trix/1.2.0/trix.css">
@endpush
<form x-data="form()">
<input x-ref="description" id="description" name="description" value='{{ $description }}' type="hidden" />
<div wire:ignore>
<trix-editor input="description"></trix-editor>
</div>
<input x-ref="info" id="info" name="info" value='{{ $info }}' type="hidden" />
<div wire:ignore>
<trix-editor input="info"></trix-editor>
</div>
<button x-on:click.prevent="save">Save</button>
</form>
@push('scripts')
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/trix/1.2.0/trix.js"></script>
<script>
function form() {
return {
save() {
window.livewire.emit('alpineSave', {
info: this.$refs.info.value,
description: this.$refs.description.value,
});
}
}
}
</script>
@endpush
//livewire component
protected $listeners = ['alpineSave'];
public function alpineSave($array) {
$this->fill([
'info' => data_get($array, 'info'),
'description' => data_get($array, 'description'),
]);
// save the data ...
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment