mirror of
https://github.com/wallabag/wallabag.git
synced 2025-04-26 19:54:44 +00:00
Extract Materialize Sidenav controller
This commit is contained in:
parent
1c853de7bf
commit
12680816ad
5 changed files with 29 additions and 15 deletions
24
assets/controllers/materialize/sidenav_controller.js
Normal file
24
assets/controllers/materialize/sidenav_controller.js
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
import { Controller } from '@hotwired/stimulus';
|
||||||
|
import M from '@materializecss/materialize';
|
||||||
|
|
||||||
|
const mobileMaxWidth = 993;
|
||||||
|
|
||||||
|
export default class extends Controller {
|
||||||
|
static values = {
|
||||||
|
edge: { type: String, default: 'left' },
|
||||||
|
};
|
||||||
|
|
||||||
|
connect() {
|
||||||
|
this.instance = M.Sidenav.init(this.element, { edge: this.edgeValue });
|
||||||
|
}
|
||||||
|
|
||||||
|
close() {
|
||||||
|
if (window.innerWidth < mobileMaxWidth) {
|
||||||
|
this.instance.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
disconnect() {
|
||||||
|
this.instance.destroy();
|
||||||
|
}
|
||||||
|
}
|
|
@ -39,8 +39,6 @@ import './js/shortcuts/entry';
|
||||||
/* Theme style */
|
/* Theme style */
|
||||||
import './scss/index.scss';
|
import './scss/index.scss';
|
||||||
|
|
||||||
const mobileMaxWidth = 993;
|
|
||||||
|
|
||||||
/* ==========================================================================
|
/* ==========================================================================
|
||||||
Annotations & Remember position
|
Annotations & Remember position
|
||||||
========================================================================== */
|
========================================================================== */
|
||||||
|
@ -274,11 +272,6 @@ const articleScroll = () => {
|
||||||
};
|
};
|
||||||
|
|
||||||
$(document).ready(() => {
|
$(document).ready(() => {
|
||||||
// sidenav
|
|
||||||
document.querySelectorAll('.sidenav').forEach((element) => {
|
|
||||||
$(element).sidenav({ edge: element.getAttribute('data-edge') ?? 'left' });
|
|
||||||
});
|
|
||||||
|
|
||||||
$('select').formSelect();
|
$('select').formSelect();
|
||||||
$('.collapsible[data-collapsible="accordion"]').collapsible();
|
$('.collapsible[data-collapsible="accordion"]').collapsible();
|
||||||
$('.collapsible[data-collapsible="expandable"]').collapsible({
|
$('.collapsible[data-collapsible="expandable"]').collapsible({
|
||||||
|
@ -309,9 +302,6 @@ $(document).ready(() => {
|
||||||
$('#nav-btn-add-tag').on('click', () => {
|
$('#nav-btn-add-tag').on('click', () => {
|
||||||
$('.nav-panel-add-tag').toggle();
|
$('.nav-panel-add-tag').toggle();
|
||||||
$('.nav-panel-menu').addClass('hidden');
|
$('.nav-panel-menu').addClass('hidden');
|
||||||
if (window.innerWidth < mobileMaxWidth) {
|
|
||||||
$('.sidenav').sidenav('close');
|
|
||||||
}
|
|
||||||
$('#tag_label').focus();
|
$('#tag_label').focus();
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
|
|
@ -114,7 +114,7 @@
|
||||||
|
|
||||||
<!-- Export -->
|
<!-- Export -->
|
||||||
{% if has_exports %}
|
{% if has_exports %}
|
||||||
<div id="export" class="sidenav" data-edge="right">
|
<div id="export" class="sidenav" data-controller="materialize--sidenav" data-materialize--sidenav-edge-value="right">
|
||||||
{% set current_tag = null %}
|
{% set current_tag = null %}
|
||||||
{% if tag is defined %}
|
{% if tag is defined %}
|
||||||
{% set current_tag = tag.slug %}
|
{% set current_tag = tag.slug %}
|
||||||
|
@ -140,7 +140,7 @@
|
||||||
|
|
||||||
<!-- Filters -->
|
<!-- Filters -->
|
||||||
{% if has_filters %}
|
{% if has_filters %}
|
||||||
<div id="filters" class="sidenav" data-edge="right">
|
<div id="filters" class="sidenav" data-controller="materialize--sidenav" data-materialize--sidenav-edge-value="right">
|
||||||
<form action="{{ path('all') }}">
|
<form action="{{ path('all') }}">
|
||||||
|
|
||||||
<h4 class="center">{{ 'entry.filters.title'|trans }}</h4>
|
<h4 class="center">{{ 'entry.filters.title'|trans }}</h4>
|
||||||
|
|
|
@ -42,7 +42,7 @@
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</nav>
|
</nav>
|
||||||
<ul id="slide-out" class="left-bar collapsible sidenav sidenav-fixed reader-mode" data-collapsible="accordion">
|
<ul id="slide-out" class="left-bar collapsible sidenav sidenav-fixed reader-mode" data-collapsible="accordion" data-controller="materialize--sidenav">
|
||||||
<li class="bold border-bottom hide-on-med-and-down">
|
<li class="bold border-bottom hide-on-med-and-down">
|
||||||
<a class="waves-effect collapsible-header" href="{{ path('homepage') }}">
|
<a class="waves-effect collapsible-header" href="{{ path('homepage') }}">
|
||||||
<i class="material-icons small">arrow_back</i>
|
<i class="material-icons small">arrow_back</i>
|
||||||
|
@ -105,7 +105,7 @@
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<li class="bold border-bottom">
|
<li class="bold border-bottom">
|
||||||
<a class="waves-effect collapsible-header" id="nav-btn-add-tag">
|
<a class="waves-effect collapsible-header" id="nav-btn-add-tag" data-action="click->materialize--sidenav#close">
|
||||||
<i class="material-icons small">label_outline</i>
|
<i class="material-icons small">label_outline</i>
|
||||||
<span>{{ 'entry.view.left_menu.add_a_tag'|trans }}</span>
|
<span>{{ 'entry.view.left_menu.add_a_tag'|trans }}</span>
|
||||||
</a>
|
</a>
|
||||||
|
|
|
@ -43,7 +43,7 @@
|
||||||
|
|
||||||
{% block menu %}
|
{% block menu %}
|
||||||
<nav class="cyan darken-1">
|
<nav class="cyan darken-1">
|
||||||
<ul id="slide-out" class="left-bar sidenav sidenav-fixed">
|
<ul id="slide-out" class="left-bar sidenav sidenav-fixed" data-controller="materialize--sidenav">
|
||||||
{% block logo %}
|
{% block logo %}
|
||||||
<li class="logo border-bottom">
|
<li class="logo border-bottom">
|
||||||
{% if is_granted('LIST_ENTRIES') %}
|
{% if is_granted('LIST_ENTRIES') %}
|
||||||
|
|
Loading…
Reference in a new issue