pagination

typescript
export interface Cursor {
  createdAt: string;
  id: string;
}

export function encodeCursor(c: Cursor): string {

Cursor Pagination for a REST List Endpoint with a Typed Fetch Client

typescript express rest
by codesnips 3 tabs
ruby
module Keysettable
  extend ActiveSupport::Concern

  included do
    scope :keyset_page, ->(after: nil, limit: 20) do
      relation = order(created_at: :asc, id: :asc).limit(limit + 1)

Keyset (Cursor) Pagination for ActiveRecord in Rails

rails activerecord pagination
by codesnips 4 tabs
java
package com.example.demo.controller;

import com.example.demo.dto.PageResponse;
import com.example.demo.dto.UserDTO;
import com.example.demo.model.User;
import com.example.demo.service.UserService;

Pagination and sorting with Spring Data

java spring-data pagination
by David Kumar 2 tabs
python
import base64
import json
from datetime import datetime


class InvalidCursor(Exception):

Cursor-Based Pagination for a Flask JSON API Blueprint

flask pagination cursor
by codesnips 3 tabs
python
import base64
import json

from django.core.exceptions import BadRequest

Cursor-Paginated JSON Feed with a Django Class-Based ListView

django pagination cursor-pagination
by codesnips 3 tabs
java
package com.example.paging;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;

import java.util.List;

Consume a Paginated REST API by Following Next-Page Links in Java

java pagination rest-api
by codesnips 3 tabs
ruby
class OverdueInvoicesQuery
  def initialize(relation: Invoice.all, as_of: Time.current)
    @relation = relation
    @as_of = as_of
  end

ActiveRecord::Relation as a Boundary (No Arrays)

rails activerecord query-objects
by codesnips 3 tabs
rust
use base64::{engine::general_purpose::URL_SAFE_NO_PAD, Engine};
use serde::{Deserialize, Serialize};
use time::OffsetDateTime;
use uuid::Uuid;

#[derive(Debug, Clone, Serialize, Deserialize)]

Cursor-Paginated Streaming REST Endpoint in Axum with Keyset Pagination

axum rust pagination
by codesnips 3 tabs
javascript
import { useMemo, useCallback } from 'react';
import { useSearchParams } from 'react-router-dom';

function parseFilters(params) {
  return {
    q: params.get('q') || '',

Sync Filter State to the URL with a useSearchParams-Driven Filter Bar in React Router

react react-router hooks
by codesnips 3 tabs
java
package com.shop.catalog;

import org.springframework.data.jpa.domain.Specification;

import java.math.BigDecimal;

Dynamic Product Filtering with JPA Specifications from Optional Query Params

spring-boot jpa specifications
by codesnips 4 tabs
typescript
import { useCallback, useEffect, useRef, useState } from "react";

export function useIntersectionObserver(options?: IntersectionObserverInit) {
  const [isIntersecting, setIsIntersecting] = useState(false);
  const nodeRef = useRef<Element | null>(null);
  const optionsKey = JSON.stringify(options ?? {});

Infinite-Scroll Feed with a React IntersectionObserver Hook and Cursor Pagination

react hooks intersection-observer
by codesnips 3 tabs
erb
<h1>Catalog</h1>

<%= turbo_frame_tag "products" do %>
  <div class="product-grid" data-controller="frame">
    <% @products.each do |product| %>
      <%= render "products/card", product: product %>

Pagination links that escape a Turbo Frame with _top

rails hotwire turbo
by codesnips 4 tabs