(require => r.keys().forEach(require))(require.context('./sass/', false, /\.(sa|sc|c)ss$/));
// экшн:
InitChatSystem() {
return axios.get('/api/initChat')
.then(res => {
this.commit('chat/initArticles', res.data.articles);
this.commit('chat/initNotifications', res.data.notifications);
})
.catch(err => {
console.log(err);
})
},
// хук:
created() {
this.$store.dispatch('chat/InitChatSystem').then(() => {
// тут запускаем нашу мутацию
// но как я понял, она в дочернем компоненте
// нужно навесить ref на компонент, а в самом компоненте сделать метод запуска
// а здесь будет что-то типа:
this.$refs.child.run();
});
},
// дождемся, когда в state.articles появятся данные
activated() {
const unwatch = this.$store.watch(state => state.articles.length, length => {
if(length === 0) { return; }
unwatch();
this.$store.commit('chat/openConversationArticle', this.article_id);
});
},
(function(selector) {
// не дублируем код
function save(data) {
localStorage.setItem(selector, JSON.stringify(data));
}
// и не создаем тысячи функций в цикле
// а используем одну общую
function onChange(event) {
var element = event.target,
name = element.name,
value = element.value;
data[name] = value;
save(data);
}
var elements = document.querySelectorAll(selector),
data = localStorage.getItem(selector);
if(data) { // если в сторадже что-то есть
// то можем и распарсить
data = JSON.parse(data);
} else {
// иначе парсить нельзя, будет ошибка
// присвоим дефолтное значение и сохраним
save(data = {});
}
// вместо ненужного создания массива
// обратимся напрямую к прототипу
Array.prototype.forEach.call(elements, function(element) {
var name = element.name,
value = element.value;
if(data[name] === value) { // если текущий элемент отмечен в сторадже
// то отметим и на странице
element.checked = true;
}
// навесим созданый вне цикла хандлер на событие
element.addEventListener("change", onChange);
});
})(/* ".stat_inp_r"
А еще к селектору вопрос, мы только с этим классом радио будем запоминать?
или же у нас каждый будет помнится?
если каждый, то может имеет смысл обработать их все за раз:
*/ "input[type=radio]");
self.addEventListener('fetch', event => {
const {request} = event;
// обрабатываем request чтоб понять, что от нас хотят
//...
if(/* условие, что запрос нужно подменить */) {
event.respondWith(new Response('Hello world', /* вместо строки можно Blob или ArrayBuffer */ {
headers: { 'Content-Type': 'text/plain' }
}));
} else {
event.respondWith(fetch(request)); // если не наш случай, отправляем запрос на сервер,
// тут так же можно заморочится с кэшем
}
});
fontFamily: font,
// создали метку fontFamily, которая здесь бесполезна,
// далее бесполезное обращение к переменной,
// далее оператор запятая
currentFont = font,
// тут вроде бы должны присвоить значение font в currentFont
// так как currentFont нигде не объявлено - будет ошибка
// ну и опять оператор запятая, а значит не фига в currentFont не будет font
FPisActive = false
// а будет там результат вот этого выражения, то есть false
// опять же FPisActive не объявлено - ошибка
pickFont: function (font) {
this.signStyle.fontFamily = font;
this.currentFont = font;
this.FPisActive = false;
}
{
test: /\.(sa|sc|c)ss$/,
use: [
MiniCssExtractPlugin.loader,
'css-loader',
'sass-loader',
],
},
{
test: /\.css$/,
use: [
MiniCssExtractPlugin.loader,
"css-loader"
]
}
test: /\.(sa|sc|c)ss$/
заменяем на test: /\.(sa|sc)ss$/
const curring = (...initArgs) => {
let sum = 0;
const curried = (...args) => {
sum = args.reduce((a, b) => a + b, sum);
return curried;
};
curried.valueOf = () => sum;
return curried(...initArgs);
};