Skip to content
View doubleedesign's full-sized avatar

Sponsoring

@ThePHPF

Organizations

@Double-E-Design

Block or report doubleedesign

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don't include any personal information such as legal names or email addresses. Markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
doubleedesign/README.md

πŸ‘‹ I'm Leesa with a Double-E

🌐 I have a strong background in web development, primarily front-end but enjoy dabbling in full-stack.

πŸ’» I currently work as a front-end software engineer at Atlassian, working with JavaScript/TypeScript, React, GraphQL, etc.

πŸ•™ I spent the first chunk of my career in agency environments, designing and building custom CMS themes and plugins (mainly WordPress/ClassicPress - PHP, HTML, CSS/SCSS, vanilla JS, jQuery) which I still do sporadically on a freelance basis. I also occasionally do print design work, and particularly enjoy large publications - where I apply my coding skills to handle tasks like repeated layouts with Adobe ExtendScript in InDesign.

πŸ‘©β€πŸ’»I also code a lot of miscellaneous stuff for fun, some of which you can check out here if you are so inclined.


WordPress

Published on NPM

Personal Projects

For funsies, learning, and/or personal use. These are all pretty scrappy, early WIPs.

Forks

Stuff I've contributed to and/or have extended to meet my needs.


Sponsoring

Projects I sponsor on GitHub and Open Collective, or have sponsored for at least 6 months since January 2024

@gulpjs @arminbro @eslint @ThePHPF @composer @sebastianbergmann Pest PHP ClassicPress

Pinned Loading

  1. InDesign Image Catalog for multiple ... InDesign Image Catalog for multiple folders at once (and multiple folders per page). Created for school yearbook projects (one folder per class, two classes per page) but could be adapted for other use cases where you want to lay out contact sheets of multiple folders automatically.
    1
    /**
    2
     * Custom Image Catalog script that runs for all subfolders in a selected folder.
    3
     * Lays out each folder of images in the specified number of rows and columns, 2 folders per page, shows an alert if there's more images than allowed for,
    4
     * labels each group with the folder name, creates paragraph styles for the captions and group headings, and saves the file.
    5
     *
  2. Automatically downgrade a WooCommerc... Automatically downgrade a WooCommerce subscription (to a free, no-expiry variation) instead of expiring it
    1
    <?php
    2
    /**
    3
     * Add base tier option to Advanced tab of subscription product
    4
     */
    5
    function doublee_subscription_product_advanced_settings() {
  3. CSS previous sibling selector example CSS previous sibling selector example
    1
    // I have sections (called blocks here) that should have top and bottom padding, 
    2
    // unless two of the same kind with the same background colour are together - 
    3
    // in which case I want them to be right up next to each other - no padding between them.
    4
    // In the HTML it looks something like this:
    5
    // <section class="block my-special-block has-primary-background-color">
  4. Add the ability to filter WooCommerc... Add the ability to filter WooCommerce orders by role in wp-admin
    1
    <?php
    2
    /**
    3
     * Add role drop-down to orders screen
    4
     */
    5
    function doublee_add_order_user_role_filter_selectbox() {
  5. useLocalStorage React hook. Keep a s... useLocalStorage React hook. Keep a state value in sync with one cached in the browser using local storage.
    1
    import { useState, useEffect, Dispatch, SetStateAction } from 'react';
    2
    
                  
    3
    export function useLocalStorage<T>(key: string, defaultValue: T): { value: T; setValue: Dispatch<SetStateAction<T>> } {
    4
    	const [value, setValue] = useState(() => {
    5
    		return localStorage?.getItem(key) ? JSON.parse(localStorage.getItem(key)) : defaultValue;
  6. useResize React hook. Dynamically ge... useResize React hook. Dynamically get height and width of an element when its size changes and store the values in state. Demo: https://codesandbox.io/s/useresize-demo-de04o8?file=/src/hooks/useResize.ts
    1
    import { MutableRefObject, useMemo, useEffect, useState } from 'react';
    2
    
                  
    3
    interface Dimensions {
    4
    	width: number;
    5
    	height: number;