Skip to content

Instantly share code, notes, and snippets.

View jairusjoer's full-sized avatar
✌️
Hello there!

Jairus Joer jairusjoer

✌️
Hello there!
View GitHub Profile
@jairusjoer
jairusjoer / rasterGlobe.ts
Last active March 27, 2023 15:50
Create an array of globe coordinates based on a limited amounts of points.
const rasterGlobe = (limit = 1000, x1 = -180, y1 = -180) => {
type Coordinates = { x: number; y: number };
let base = Math.pow(limit, 1 / 2);
let root = Math.floor(base);
let data: Array<Coordinates> = [];
const rasterLine = (x2: number) => {
for (let i = 0; i < root; i++) {
let y = y1 + ((y1 * -2) / (root - 1)) * i;
@jairusjoer
jairusjoer / night.js
Last active April 27, 2022 10:12
Simple dark mode switch with callback and local storage capability
/**
* @param {object} night Configure night mode controls and targets.
* @param {string} night.mount Mount theme class to single given DOM element.
* @param {string} night.targets Match control targets using `querySelectorAll()`.
* @param {string} [night.theme] Set optional theme name to be mounted. Default: night.
* @param {function} [night.callback] Optional callback triggered on target interaction.
* @return {object} Current theme state and targeted DOM elements.
*/
const night = ({ mount, targets, theme = "night", callback }) => {
@jairusjoer
jairusjoer / starship.toml
Last active March 4, 2023 11:00
My personal configuration for starship.rs
format = """
$directory\
[](fg:#4f46e5 bg:#4338ca)\
$git_branch\
$git_status\
[](fg:#4338ca bg:#3730a3)\
$nodejs\
$rust\
$golang\
$php\
@jairusjoer
jairusjoer / post.php
Last active March 27, 2023 15:32
Accept POST data in JSON format
<?php
$response = (object) [];
$json = json_decode(file_get_contents('php://input'));
//...
if (!$json) {
$response->state = [
'code' => 400,
@jairusjoer
jairusjoer / post-and-reply.md
Last active March 27, 2023 15:54
Post data to a PHP endpoint and dynamically display a response with Alpine.js

Post and reply

Post data to a PHP endpoint and dynamically display a response with Alpine.js

HTML

<html x-data="utility">

  <!-- ... -->
  
@jairusjoer
jairusjoer / json-response.php
Created September 24, 2022 20:58
A simple JSON response for PHP endpoints with corresponding response code
<?php
$response = new \stdClass();
$response->state = [
'code' => 200,
'type' => 'success', // Can be used for CSS indicators classes such as `.is-[type]`
'message' => 'Your data has ben successfully submitted.'
];
@jairusjoer
jairusjoer / utility.js
Last active December 9, 2022 20:52
A collection of frequently used JavaScript snippets
// Transform a ISO 8601 format date string to a given locale ―――――――――――――――― //
const date = (input, locale = "de-DE", options = { dateStyle: "long" }) => {
const date = Date.parse(input);
return new Intl.DateTimeFormat(locale, options).format(date);
};
// Mount, toggle and store dark mode theme on client ―――――――――――――――――――――――― //
/**
* @param {object} night Configure night mode controls and targets.
* @param {string} night.mount Mount theme class to single given DOM element.
@jairusjoer
jairusjoer / video-scroll-sync.js
Last active December 9, 2022 20:52
Sync video playback with vertical scrolling
const scrollVideo = (media, threshold = 1) => {
const video = document.querySelector(media);
const target = video.parentNode;
const scrollDistance = target.clientHeight - window.innerHeight;
let observer = new IntersectionObserver(
(entries, observer) => {
entries.forEach((entry) => {
if (entry.isIntersecting) {
@jairusjoer
jairusjoer / three.js
Last active February 19, 2023 22:24
A simple wrapper for three.js to integrate 3D objects into a website
import { GLTFLoader } from "three/examples/jsm/loaders/GLTFLoader.js";
import { OrbitControls } from "three/examples/jsm/controls/OrbitControls.js";
import {
AnimationMixer,
Clock,
Color,
DirectionalLight,
HemisphereLight,
PerspectiveCamera,
@jairusjoer
jairusjoer / .zshrc
Created March 4, 2023 11:06
My personal configuration for zsh
# https://github.com/nvm-sh/nvm
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
# https://github.com/zsh-users/zsh-autosuggestions
source ~/.zsh/zsh-autosuggestions/zsh-autosuggestions.zsh
# https://starship.rs/
eval "$(starship init zsh)"