Skip to content

Instantly share code, notes, and snippets.

View hrdtbs's full-sized avatar
🎯
I may be slow to respond.

hrdtbs hrdtbs

🎯
I may be slow to respond.
View GitHub Profile
@hrdtbs
hrdtbs / expense_specifics_transport_controllers.js
Last active June 4, 2022 10:57
jobcanの交通費明細で有効なCSV形式
// source: https://ssl.wf.jobcan.jp/static/wf/scripts/controllers/create_request/expense_specifics_transport_controllers.js?ci-build-64159.444028469786320462
(function() {
'use strict';
angular
.module('WfApp.create_request_controllers')
.controller('ExpenseSpecificsTransportController', ExpenseSpecificsTransportController);
ExpenseSpecificsTransportController.$inject = [
'$http',
@hrdtbs
hrdtbs / fireReactChangeEvent.ts
Last active May 29, 2022 21:22
Fire React.ChangeEvent
export const fireReactChangeEvent = (
element: HTMLInputElement | HTMLTextAreaElement,
value: string | number
) => {
const nativeInputValueSetter = Object.getOwnPropertyDescriptor(
element.tagName.toLowerCase() === "input"
? HTMLInputElement.prototype
: HTMLTextAreaElement.prototype,
"value"
)?.set;
@hrdtbs
hrdtbs / codegen.yml
Last active May 7, 2022 16:54
Easy way to use Github GraphQL API with graphql-codegen
overwrite: true
schema: 'https://docs.github.com/public/schema.docs.graphql'
documents: 'src/**/*.graphql'
generates:
src/__generated__/graphql.ts:
plugins:
- typescript
- typescript-operations
- typescript-react-query
config:
@hrdtbs
hrdtbs / capture-screenshot-demo.js
Created April 22, 2022 13:33
MediaDevices.getDisplayMediaやImageCaptureを利用してスクリーンショットを撮るデモ、たぶんChromeぐらいでしか動かない
const mediaStream = await navigator.mediaDevices.getDisplayMedia({
preferCurrentTab: true,
});
const track = mediaStream.getVideoTracks()[0];
const imageCapture = new ImageCapture(track);
const imageBitmap = await imageCapture.grabFrame();
const settings = track.getSettings();
track.stop();
const canvas = document.createElement("canvas");
const ctx = canvas.getContext("bitmaprenderer");
const WHITESPACE = [" ", "\t", "\b", "\n", "\r"];
const NUMERICAL_CHARACTERS = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"];
const EXP_CHARACTERS = ["e", "E"];
//@see https://www.json.org/json-en.html
export const parse = (value: string) => {
let index = 0;
const skip = () => {
index++;
};
interface LocaleDateOptions {
/**
* The locale matching algorithm to use.
* Possible values are "lookup" and "best fit"; the default is "best fit".
* @default "best fit"
*/
localeMatcher?: "lookup" | "best fit"
/**
* The representation of the weekday.
*/
@hrdtbs
hrdtbs / answer.md
Last active November 1, 2021 09:13
Dependabot doesn't see GitHub actions secrets
@hrdtbs
hrdtbs / package.json
Last active May 16, 2021 12:37
electron, typescript, react
const createWindow = () => {
window = new BrowserWindow({
title: app.name,
width: 1024,
height: 640,
transparent: true,
frame: false,
webPreferences: {
worldSafeExecuteJavaScript: false,
nodeIntegration: true,
@hrdtbs
hrdtbs / storybook_preview.js
Created April 16, 2021 07:03
How to mock Next.js image component & Next.js link component in Storybook
import * as NextImage from "next/image"
const OriginalNextImage = NextImage.default
Object.defineProperty(NextImage, "default", {
configurable: true,
value: props => <OriginalNextImage {...props} unoptimized />
})
import * as NextLink from "next/link"
@hrdtbs
hrdtbs / pure-css-responsive-hover-effect.css
Created March 10, 2021 05:51
hover effectをmobile(ホバーすることができる入力メカニズムがある端末)でのみactiveに置き換えるCSS
@media (any-hover: hover) {
&:hover {
background-color: red;
}
}
@media not all and (any-hover: hover) {
&:active {
background-color: red;
}
}