Skip to content

Instantly share code, notes, and snippets.

@belackriv
belackriv / authListenerMiddleware.ts
Last active March 15, 2024 15:29
Using Simple Auth State
import { createListenerMiddleware } from "@reduxjs/toolkit";
import { authApi } from './authApi';
import { api } from './baseApi';
import type { RootState } from "../store";
export const authListenerMiddleware = createListenerMiddleware();
authListenerMiddleware.startListening({
matcher: authApi.endpoints.login.matchFulfilled,
effect: (action, listenerApi) => {
localStorage.setItem(
@belackriv
belackriv / QueryUnitOfWorkMixin.php
Created March 7, 2018 13:30
Query Unit Of Work
<?php
namespace App\Library\Mixin;
trait QueryUnitOfWorkMixin
{
public function queryUow($className, array $properties)
{
foreach($this->getEntityManager()->getUnitOfWork()->getScheduledEntityInsertions() as $entity){
if(is_a($entity, $className)){
@belackriv
belackriv / contextMenuRegion.js
Created January 17, 2017 16:15
Mn Close on Click-off region
'use strict';
import Marionette from 'marionette';
export default Marionette.Region.extend({
onShow(view, region, options){
if(!options.event){
throw 'Must Supply an event with contextmenu show';
}
options.event.preventDefault();
'use strict';
import Marionette from 'marionette';
import viewTpl from './boxItemView.hbs!';
import TrashListView from './trashListView.js';
export default Marionette.LayoutView.extend({
template: viewTpl,
tagName: 'li',
regions: {
let filterChecklistItemViewTpl = '<label><input type="checkbox" name="{{name}}"" {{if isActive}}checked{{/if}} />{{title}}</label>';
let filterViewTpl = '<div>{{filterTitle}}:<span data-ui="expandFilterButton" class="down-carret-thing></span></div><div data-region="filterChecklist"></div>';
let FilterChecklistItemView = Marionette.LayoutView.extend({
template: filterChecklistItemViewTpl,
ui: {
'checkbox': 'input[type="checkbox"]'
},
events: {
@belackriv
belackriv / marionette.stickit.shim.js
Created July 2, 2016 19:10
Marionette Stickit Shim for v3
//credit to https://github.com/bazineta for the original
'use strict';
import * as _ from 'underscore';
import * as Marionette from 'marionette';
// Save original Backbone.Stickit calls.
var stickit = Marionette.View.prototype.stickit;
var addBinding = Marionette.View.prototype.addBinding;
'use strict';
import Backbone from 'backbone';
import Radio from 'backbone.radio';
import Marionette from 'marionette';
import MyselfModel from 'lib/common/models/myselfModel';
import UserAccountCollection from 'lib/common/models/userAccountCollection';
import AccountCollection from 'lib/common/models/accountCollection';
@belackriv
belackriv / layout.js
Last active December 15, 2015 19:29
Dynamic Tabs Layout
var TabOneContentView = Marionette.LayoutView.extend({
template: '#viewOne'
});
var TabTwoContentView = Marionette.LayoutView.extend({
template: '#viewTwo'
});
var TabItemView = Marionette.ItemView.extend({
template: '#itemView',
@belackriv
belackriv / slideOutAndInRegion.js
Last active December 1, 2015 16:35
Marionette Transition Region Example
'use strict';
import TransitionRegion from './transitionRegion';
export default TransitionRegion.extend({
//can override transitionIn and transitionOut with diff effects
//must trigger 'transition:out:complete' and optionally 'transition:in:complete'
transitionOut(){
var region = this;
var SpectrumDrawer = function(buffer){
this.buffer = buffer;
this.bufferPosition = 0;
this.bufferLength = this.buffer.length;
var pixelWidth = $('#wave').width();
this.sampleBufferLength = Math.floor(this.bufferLength / pixelWidth);
$('#spectrum').width(pixelWidth);
$('#spectrum').height($('#wave').height());
this.spectrumCanvas = $('#spectrum').get(0);