Skip to content

Instantly share code, notes, and snippets.

@daronspence
daronspence / BaseTable.vue
Created August 24, 2022 19:47
A table component to act as the base for larger table features.
View BaseTable.vue
<script>
const BaseTable = {
props: {
fields: {
type: Array,
default: [],
validator(fields) {
return fields.find(field => field?.key === undefined || field?.label === undefined) === undefined
},
},
@daronspence
daronspence / markdown-with-iframes.php
Created April 29, 2022 15:23
Stringable Markdown with Iframe Support
View markdown-with-iframes.php
<?php
// within AppServiceProvider::boot() or a similar entry point
Stringable::macro('markdownWithIframes', function ($config = []) {
$config['disallowed_raw_html'] = [
'disallowed_tags' => ['title', 'textarea', 'style', 'xmp', 'noembed', 'noframes', 'script', 'plaintext'],
];
$environment = new Environment($config);
@daronspence
daronspence / hyper-volume.json
Created January 13, 2022 07:58
Hyper Volume
View hyper-volume.json
{
"title": "Hyper Volume",
"rules": [
{
"description": "Hyper + Up = Volume Up",
"manipulators": [
{
"from": {
"key_code": "up_arrow",
"modifiers": {
@daronspence
daronspence / nvmrc.zsh
Created February 22, 2021 21:50
Automagic .nvmrc
View nvmrc.zsh
#!/bin/zsh
# Put this in your .zshrc
autoload -U add-zsh-hook
load-nvmrc() {
local node_version="$(nvm version)"
local nvmrc_path="$(nvm_find_nvmrc)"
if [ -n "$nvmrc_path" ]; then
@daronspence
daronspence / example.js
Created May 20, 2020 20:30
Contentful debug example
View example.js
/**
* Essentially, the `onValueChanged` callback used to provide an object/array that was `===` during comparisons.
* In the last few days though, something changed and === was not working anymore.
* My solution is to serialize the values and compare those strings to ensure things are
not triggering unnecessary re-renders.
The external change handler is triggered even when the current editor updates the field value,
so we need to check it's equality to what is already in state,
otherwise the current editor will be in an endless loop of updating their own UI.
@daronspence
daronspence / a.js
Created April 30, 2020 18:38
Contentful
View a.js
import React from 'react';
import PropTypes from 'prop-types';
import ReactDOM from 'react-dom';
import { TextInput } from '@contentful/forma-36-react-components';
import { init } from 'contentful-ui-extensions-sdk';
import '@contentful/forma-36-react-components/dist/styles.css';
import './dist.css';
import { createApolloFetch } from 'apollo-fetch';
import { debounce, union, keyBy } from 'lodash-es';
@daronspence
daronspence / config.json
Created October 11, 2019 04:55
Tailwind Config - tailwindcss.now.sh
View config.json
{
"variants": {
"borderColor": ["responsive", "hover", "focus", "focus-within"]
}
}
@daronspence
daronspence / acf-copy-repeater-field-to-singular.php
Created May 2, 2019 06:32
Copy last row of ACF field to hidden custom fields on save
View acf-copy-repeater-field-to-singular.php
<?php
/**
* Plugin Name: ACF Copy Repeater Field to Singular - docs_list_renew
* Version: 0.1
* Description: Copies the values of the last row of a repeater field to separate custom fields to be used with Admin Columns
*/
// Rename the second argument if you're going to copy the plugin to work with another repeater.
add_action('wp_insert_post', 'reddit_acf_copy_repeater_field_to_singular', 10);
@daronspence
daronspence / webpack.mix.js
Created April 27, 2019 14:35
Laravel Mix with Sass and Tailwind 1.0 Configuration
View webpack.mix.js
const mix = require('laravel-mix');
require('laravel-mix-tailwind');
/*
|--------------------------------------------------------------------------
| Mix Asset Management
|--------------------------------------------------------------------------
|
| Mix provides a clean, fluent API for defining some Webpack build steps
| for your Laravel application. By default, we are compiling the Sass
@daronspence
daronspence / acf-ajax.php
Created October 30, 2018 14:20
ACF AJAX for Mike
View acf-ajax.php
<?php
add_action('admin_head', function(){
?>
<script type="text/javascript">
/*
updated JS file for use with ACF >= 5.7.0
*/