typescript
export interface UseClipboardResult {
  copied: boolean;
  error: Error | null;
  copy: (value: string) => Promise<boolean>;
}

Copy-to-Clipboard Button With a useClipboard Hook and Timed Success Feedback

react hooks clipboard
by codesnips 3 tabs
go
package main

import (
	"log"
	"net/http"
	"time"

Serving Partial Video Content with HTTP Range Requests in Go

go http range-requests
by codesnips 3 tabs
typescript
import { useEffect, useState } from "react";

export function useDebouncedValue<T>(value: T, delay = 800): T {
  const [debounced, setDebounced] = useState<T>(value);

  useEffect(() => {

Debounced Draft Autosave with React Query and a Saving-Status Indicator

react react-query autosave
by codesnips 4 tabs
php
<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

Slugify Post Titles on Save With a Laravel Model Observer and Guaranteed Uniqueness

laravel eloquent observer
by codesnips 4 tabs
go
package httpmetrics

import "github.com/prometheus/client_golang/prometheus"

var (
	httpRequestDuration = prometheus.NewHistogramVec(

HTTP Latency and Status Code Middleware with Prometheus in Go

go middleware prometheus
by codesnips 3 tabs
python
import time
import uuid
from dataclasses import dataclass

import redis

Sliding-Window Per-User Rate Limiting With Redis and a Flask Decorator

rate-limiting redis flask
by codesnips 3 tabs
php
<?php

namespace App\Domain;

use InvalidArgumentException;

Serializing a Money Value Object with a Custom Symfony Normalizer

symfony serializer value-object
by codesnips 3 tabs
rust
#[derive(Debug, Clone, PartialEq)]
pub enum Line {
    Context(String),
    Remove(String),
    Add(String),
}

Parsing Unified Diff Hunks and Applying Them to a Text Buffer in Rust

diff unified-diff patch
by codesnips 3 tabs
ruby
require 'securerandom'
require 'digest'
require 'openssl'
require 'rack/utils'

class RememberToken < Sequel::Model

Signed 'Remember Me' Cookies for Persistent Login in Sinatra

sinatra authentication cookies
by codesnips 3 tabs
java
package com.example.search;

import java.time.LocalDate;

@ValidDateRange
public class DateRangeSearch {

Bind and Validate a Date-Range Search with @ModelAttribute and a Custom PropertyEditor

spring-boot spring-mvc data-binding
by codesnips 4 tabs
javascript
import { useLayoutEffect, useRef, useCallback } from 'react';

export function useScrollAnchor(anchorItemCount) {
  const containerRef = useRef(null);
  const savedRef = useRef(null);

Preserve Scroll Position When Loading Older Comments With useLayoutEffect

react hooks uselayouteffect
by codesnips 3 tabs
typescript
import { ChangeDetectionStrategy, Component, computed, inject, signal } from '@angular/core';
import { ScrollingModule } from '@angular/cdk/scrolling';
import { FormsModule } from '@angular/forms';
import { Contact, ContactStore } from './contact.store';

@Component({

Virtual Scrolling a Long List in Angular with CDK and trackBy

angular virtual-scroll cdk
by codesnips 3 tabs