awesome-repositories.com
Blog
MCP
awesome-repositories.com

Descoperă cele mai bune repository-uri open source cu căutare AI.

ExploreazăCăutări recomandateAlternative open-sourceSoftware self-hostedBlogHartă site
ProiectServer MCPDespreCum realizăm clasamentulPresă
LegalConfidențialitateTermeni
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·

24 repository-uri

Awesome GitHub RepositoriesState-Driven Callbacks

Event systems that trigger specific functions when internal state reaches predefined thresholds.

Distinct from Event-Driven Hook Systems: Focuses on callbacks triggered by specific state thresholds (e.g., fully open) rather than general system hooks.

Explore 24 awesome GitHub repositories matching software engineering & architecture · State-Driven Callbacks. Refine with filters or upvote what's useful.

Awesome State-Driven Callbacks GitHub Repositories

Găsește cele mai bune repo-uri cu AI.Vom căuta cele mai potrivite repository-uri folosind AI.
  • codermjlee/mjrefreshAvatar CoderMJLee

    CoderMJLee/MJRefresh

    13,814Vezi pe GitHub↗

    MJRefresh is a scroll view interaction library and a set of reusable UI components for implementing pull-to-refresh and infinite scrolling behaviors in mobile user interfaces. It provides customizable refresh indicators and controllers that manage reload callbacks and loading states within scrollable containers. The library allows for the replacement of standard loading indicators with custom images, GIF sequences, and status labels to match specific visual branding. It includes a global configuration store to handle dynamic UI localization and the translation of refresh content across an app

    Decouples scroll interaction from data fetching by triggering callbacks when internal state thresholds are reached.

    Objective-Cobjective-crefresh
    Vezi pe GitHub↗13,814
  • daimajia/androidswipelayoutAvatar daimajia

    daimajia/AndroidSwipeLayout

    12,365Vezi pe GitHub↗

    AndroidSwipeLayout is an Android UI library and custom view framework that enables the creation of layouts that reveal hidden action buttons when a user performs a swipe gesture. It functions as a gesture-based UI component that triggers callbacks based on the real-time position of the swipe. The framework is designed to support complex interaction patterns, specifically allowing for the nesting of multiple swipeable components within one another. The library covers mobile gesture interaction and custom view orchestration, providing tools to track swipe states and synchronize UI changes duri

    Triggers specific events at predefined thresholds to notify the application when a view is fully open or closed.

    Java
    Vezi pe GitHub↗12,365
  • leecade/react-native-swiperAvatar leecade

    leecade/react-native-swiper

    10,490Vezi pe GitHub↗

    react-native-swiper is a cross-platform mobile carousel component that provides a swipeable interface for cycling through content panels. It supports both horizontal and vertical transitions and includes a visual pagination system using customizable indicators like dots or numbers to track the user's position. The component features a lazy-loading mechanism that defers the rendering of off-screen content to reduce memory usage and improve initial load times. It supports infinite looping, automated slide transitions via a timer, and programmatic navigation control to move the slider to specifi

    Provides callbacks that trigger when the carousel settles on a specific slide index.

    JavaScript
    Vezi pe GitHub↗10,490
  • restkit/restkitAvatar RestKit

    RestKit/RestKit

    10,104Vezi pe GitHub↗

    RestKit is an iOS REST API integration framework used to connect Apple platform applications to web services. It centers on RESTful resource modeling, transforming remote API data structures into typed local objects and database entities. The framework provides capabilities for remote data persistence by caching web service resources in a local database to enable offline access. It also handles network data serialization, using pluggable parsers to convert JSON or XML responses into application data models. Additional functionality includes multipart file uploading for sending binary data an

    Triggers specific event handlers automatically when the device network reachability status changes.

    Objective-C
    Vezi pe GitHub↗10,104
  • pmndrs/use-gestureAvatar pmndrs

    pmndrs/use-gesture

    9,618Vezi pe GitHub↗

    use-gesture is a JavaScript gesture manager and interaction tool designed to detect and process user input patterns. It functions as a React gesture hook library and a general utility for tracking screen coordinates and movement patterns to drive interactive component behaviors. The library specializes in capturing complex mouse and touch interactions, including dragging, pinching, swiping, and scrolling. It provides a system for implementing drag and drop functionality and pinch-to-zoom interactions. The tool covers the development of interactive UI components by normalizing diverse input e

    Triggers user-defined callback functions when gestures reach specific phases or state thresholds.

    TypeScript
    Vezi pe GitHub↗9,618
  • mango/slideoutAvatar mango

    mango/slideout

    7,881Vezi pe GitHub↗

    Slideout is a touch-gesture UI component and navigation menu designed for mobile web applications. It provides a side panel that slides across the screen to reveal navigation options, utilizing CSS transitions to animate the movement of the viewport. The component manages the expanded or collapsed state of the navigation menu and includes logic to restrict gestures for specific interface elements to prevent interaction conflicts. It employs a system for executing custom logic triggered by menu state transitions and user drag gestures.

    Provides callback functions triggered when the menu reaches specific state milestones like open or close.

    JavaScript
    Vezi pe GitHub↗7,881
  • thebird/swipeAvatar thebird

    thebird/Swipe

    6,750Vezi pe GitHub↗

    Swipe is a JavaScript library for creating touch-based sliders and interactive carousels. It provides a gesture-based navigation tool for building swipeable content interfaces that support touch navigation on mobile and web browsers. The library distinguishes itself through the use of GPU-accelerated transitions and animation frames to ensure smooth motion. It implements a continuous looping effect, allowing content to wrap around seamlessly during navigation. The tool covers the synchronization of slide states with touch inputs and the execution of custom functions when transitions complete

    Triggers external callbacks only when the internal active index changes after a transition completes.

    JavaScript
    Vezi pe GitHub↗6,750
  • pytransitions/transitionsAvatar pytransitions

    pytransitions/transitions

    6,548Vezi pe GitHub↗

    Transitions is an object-oriented finite state machine library for Python. It provides a framework for managing valid states and the logic for moving between them, including implementations for asynchronous state machines and thread-safe state managers. The library supports hierarchical state machines that allow states to be nested to organize complex subtasks and logical contexts. It includes tools for generating visual diagrams of states and transitions to document machine logic. The project covers state management primitives such as lifecycle callbacks, conditional transition guarding, an

    Executes registered functions automatically during specific transition phases like entry and exit.

    Python
    Vezi pe GitHub↗6,548
  • phoboslab/jsmpegAvatar phoboslab

    phoboslab/jsmpeg

    6,498Vezi pe GitHub↗

    jsmpeg is a JavaScript MPEG1 video decoder and canvas-based video renderer. It functions as a client-side media decoder that processes video frames in JavaScript, rendering them to an HTML5 canvas without relying on native browser video elements. The project provides a low-latency video player capable of receiving binary media data over WebSockets for real-time streaming. It also supports the progressive loading of static video files via Ajax to allow playback to begin before a file is fully downloaded. The system includes capabilities for playback state and event management, allowing for th

    Triggers specific callbacks when playback transitions occur to synchronize application logic with the media player state.

    JavaScript
    Vezi pe GitHub↗6,498
  • pmndrs/levaAvatar pmndrs

    pmndrs/leva

    5,981Vezi pe GitHub↗

    Leva este un panou de control GUI pentru React și un editor de parametri în timp real utilizat pentru a monitoriza și ajusta starea și variabilele aplicației fără a modifica codul sau a reîncărca pagina. Acesta funcționează ca un debugger de stare dinamic și o bibliotecă de input extensibilă care oferă o interfață vizuală pentru ajustarea fină a valorilor numerice, booleene și text în cadrul unei aplicații web care rulează. Proiectul se distinge printr-un sistem de plugin-uri care permite crearea de componente de input personalizate și comportamente specializate pentru a suporta tipuri de date unice. Utilizează type-inference pentru a mapa automat datele către widget-ul vizual corespunzător, deși această mapare poate fi suprascrisă pentru a forța anumite tipuri de input. Interfața suportă diverse categorii de input, inclusiv intervale numerice, vectori, selectoare de culoare și câmpuri de upload media. Controalele pot fi organizate în foldere ierarhice, afișate condiționat pe baza altor valori și sincronizate cu depozite de date externe. Sistemul monitorizează, de asemenea, ciclul de viață al editării, permițând callback-uri atunci când utilizatorii încep și termină interacțiunile pentru a optimiza performanța pentru operațiunile costisitoare.

    Triggers callbacks when a user starts and finishes interacting with a control to optimize performance for expensive operations.

    TypeScript
    Vezi pe GitHub↗5,981
  • jonkykong/sidemenuAvatar jonkykong

    jonkykong/SideMenu

    5,819Vezi pe GitHub↗

    SideMenu este o bibliotecă de meniu de navigare pentru iOS și un framework de navigare pentru aplicații mobile scris în Swift. Oferă componente reutilizabile pentru implementarea meniurilor laterale animate de tip slide-out și a sertarelor de navigare în aplicațiile iOS. Framework-ul suportă navigarea prin swipe continuu, permițând utilizatorilor să facă tranziția între meniurile de pe părțile opuse ale ecranului într-o singură mișcare. Include un sistem de coordonare pentru a gestiona instanțe multiple de meniu pe diferite niveluri de navigare și un mecanism de configurare globală pentru a asigura un comportament și un aspect consistent pe toate ecranele aplicației. Biblioteca gestionează translația view-urilor bazată pe gesturi și redarea meniurilor glisante cu efecte de paralaxă integrate. De asemenea, oferă callback-uri de vizibilitate bazate pe stare pentru a notifica view controller-ele când meniurile se deschid sau se închid.

    Provides callbacks that trigger when the menu reaches specific open or closed state thresholds.

    Swift
    Vezi pe GitHub↗5,819
  • cferdinandi/smooth-scrollAvatar cferdinandi

    cferdinandi/smooth-scroll

    5,444Vezi pe GitHub↗

    Această bibliotecă JavaScript de smooth scrolling este un utilitar frontend și un controller de mișcare a viewport-ului, conceput pentru a anima tranzițiile către link-uri ancoră. Aceasta interceptează click-urile standard pe link-uri pentru a înlocui salturile instantanee cu o mișcare fluidă către elementele țintă. Biblioteca oferă tipare de easing configurabile și controale de viteză pentru a gestiona accelerația și decelerarea. Include un mecanism pentru a anula imediat animațiile active și suportă declanșarea programatică a scroll-ului prin apeluri directe de funcții. Instrumentul gestionează offset-urile de poziționare pentru a preveni ascunderea conținutului țintă în spatele header-elor fixe și sincronizează bara de adrese a browserului în timpul tranzițiilor. De asemenea, dispune de un sistem de callback bazat pe evenimente care declanșează efecte secundare atunci când animațiile de scroll încep, se încheie sau sunt întrerupte.

    Executes registered callbacks when scroll animations start or conclude to synchronize interface states.

    JavaScriptanchor-linksanimate-scrollingjavascript
    Vezi pe GitHub↗5,444
  • aasm/aasmAvatar aasm

    aasm/aasm

    5,219Vezi pe GitHub↗

    Această bibliotecă oferă un framework pentru definirea mașinilor cu stări finite (finite state machines) în interiorul claselor Ruby pentru a gestiona cicluri de viață complexe ale obiectelor. Funcționează ca un motor de workflow declarativ, permițând dezvoltatorilor să modeleze stările, evenimentele și tranzițiile obiectelor printr-un limbaj specific domeniului (DSL) ușor de citit. Prin integrarea directă cu straturile de persistență a bazei de date, framework-ul asigură sincronizarea schimbărilor de stare cu înregistrările din stocare, menținând în același timp integritatea datelor prin gestionarea tranzacțiilor și blocarea rândurilor. Biblioteca se distinge prin impunerea unor reguli de business stricte prin intermediul gardelor de tranziție condiționale și prevenirea modificării directe a stării, asigurându-se că toate schimbările ciclului de viață au loc exclusiv prin evenimente definite. Suportă mai multe mașini cu stări independente în cadrul unei singure clase prin maparea lor la câmpuri distincte din baza de date, oferind un control izolat al ciclului de viață. Mai mult, generează automat metode de instanță dinamice pentru interogarea stărilor și declanșarea evenimentelor, alături de scope-uri de interogare a bazei de date care simplifică filtrarea obiectelor pe baza stării lor curente. Dincolo de gestionarea de bază a ciclului de viață, framework-ul include utilitare pentru localizarea numelor stărilor pentru a susține interfețe multilingve și oferă hook-uri pentru executarea de logică personalizată înainte sau după tranziții. De asemenea, oferă matchere de testare specializate pentru a verifica configurațiile mașinii cu stări și logica de tranziție în cadrul suitelor de teste automatizate. Proiectul include instrumente pentru compilarea codului sursă și a configurațiilor în documentație structurată pentru a asista referința sistemului.

    Triggers custom logic automatically before or after state transitions to perform lifecycle side effects.

    Ruby
    Vezi pe GitHub↗5,219
  • scottschiller/soundmanager2Avatar scottschiller

    scottschiller/SoundManager2

    5,073Vezi pe GitHub↗

    SoundManager2 este un API audio JavaScript și un motor audio cross-browser conceput pentru a oferi o redare consistentă în diferite browsere web și dispozitive. Acesta funcționează ca un wrapper audio HTML5 și manager de redare care abstractizează API-urile native într-o interfață unificată, asigurând compatibilitatea printr-un mecanism de comutare automată între backend-urile audio și codecurile disponibile. Biblioteca se distinge printr-un streamer audio RTMP pentru comunicarea în rețea cu servere media și un parser de metadate ID3 încorporat pentru extragerea titlurilor pieselor, informațiilor despre artist și a genurilor din fișierele audio. De asemenea, implementează streaming audio byte-range pentru a încărca fișierele în segmente mici, ceea ce permite căutarea și redarea fără a descărca întregul fișier în memorie. Sistemul acoperă capabilități largi în manipularea audio, inclusiv analiza semnalului în timp real pentru forme de undă și spectre de frecvență, precum și procesarea efectelor audio pentru pitch bending și egalizare. Gestionează întregul ciclu de viață al resurselor obiectelor sonore, oferă gestionarea stării de redare cu monitorizare bazată pe evenimente și include instrumente pentru verificarea suportului formatelor audio și depanarea erorilor de inițializare.

    Uses a callback system to trigger application logic when audio enters or exits states like loading and completion.

    JavaScript
    Vezi pe GitHub↗5,073
  • wdullaer/materialdatetimepickerAvatar wdullaer

    wdullaer/MaterialDateTimePicker

    4,630Vezi pe GitHub↗

    MaterialDateTimePicker este o bibliotecă de componente UI conforme cu Material Design pentru Android, oferind widget-uri standardizate pentru selectarea datelor, orelor și valorilor temporale combinate. Aceasta implementează un set de dialoguri personalizabile care urmează sistemul Material Design pentru a asigura interacțiuni consistente cu interfața utilizator. Biblioteca dispune de un selector combinat de dată și oră care coordonează afișarea secvențială a dialogurilor de calendar și ceas. Oferă constrângeri specifice atât pentru selectarea datei, cât și a orei, permițând restricționarea intervalelor selectabile, a zilelor specifice și a intervalelor de timp necesare. Configurarea vizuală este gestionată printr-un sistem de stilizare bazat pe teme, suportând culori de accent personalizate, comutatoare pentru modul întunecat și personalizarea textului butoanelor de acțiune. Aceste componente sunt implementate ca fragmente de dialog pentru a gestiona ciclul de viață și suprapunerile de ecran în cadrul aplicațiilor Android.

    Implements callbacks to notify the host activity when the user selects a specific date or time.

    Javaandroidandroid-librarymaterial-design
    Vezi pe GitHub↗4,630
  • patrickkunka/mixitupAvatar patrickkunka

    patrickkunka/mixitup

    4,543Vezi pe GitHub↗

    Mixitup este o bibliotecă de animație a elementelor DOM fără dependențe și un motor de layout de tip grid. Servește drept filtru de conținut client-side și controler UI bazat pe date, conceput pentru a gestiona tranziția vizuală fluidă a elementelor HTML în timpul operațiunilor de inserare, eliminare și sortare. Sistemul se specializează în crearea de interfețe de galerie interactive și filtrarea dinamică a conținutului. Permite reorganizarea elementelor folosind atribute personalizate sau secvențe aleatorii, sincronizând în același timp aranjarea și vizibilitatea elementelor interfeței cu un model de date subiacent. Dincolo de filtrare și sortare, biblioteca acoperă gestionarea elementelor DOM, inclusiv inserarea și eliminarea dinamică a țintelor. Oferă capabilități pentru animarea redimensionării containerului, definirea de efecte de animație personalizate și utilizarea de „stagger-uri” non-liniare pentru apariția elementelor.

    Triggers custom callback functions at specific stages such as start, end, failure, or busy states.

    JavaScriptanimationdom-manipulationfilter
    Vezi pe GitHub↗4,543
  • mescroll/mescrollAvatar mescroll

    mescroll/mescroll

    4,459Vezi pe GitHub↗

    mescroll este o bibliotecă JavaScript de infinite scroll și un manager de scroll pentru web mobil, conceput pentru a implementa tipare de pull-to-refresh și pull-up-loading. Oferă un sistem pentru gestionarea scroll-ului tactil, gestionarea stărilor de paginare și integrarea acestor comportamente în aplicații Vue. Biblioteca se distinge prin suport specializat pentru interfețele de chat, permițând încărcarea datelor în ordine inversă și capacitatea de a injecta date într-o direcție inversă pentru a simula istoricul mesajelor. Include, de asemenea, un cache de scroll cu persistență a stării pentru a păstra offset-urile verticale și datele listei atunci când utilizatorii navighează între diferite vizualizări. Proiectul acoperă o gamă largă de capabilități de interacțiune și performanță, inclusiv suprimarea rubber-banding-ului nativ al browserului, lazy loading-ul imaginilor conștient de viewport și poziționarea programatică a scroll-ului. Oferă, de asemenea, utilitare pentru gestionarea stărilor de paginare, personalizarea UI-ului de încărcare și a stării goale, precum și implementarea navigării back-to-top.

    Triggers developer-defined callback functions when scroll offsets reach predefined thresholds for refreshing or loading.

    Vuebouncecss3html5
    Vezi pe GitHub↗4,459
  • marcj/css-element-queriesAvatar marcj

    marcj/css-element-queries

    4,243Vezi pe GitHub↗

    Acest proiect este o bibliotecă CSS responsivă și un monitor de dimensiuni ale elementelor. Oferă un polyfill pentru container queries CSS, permițând aplicarea stilurilor pe baza dimensiunilor specifice ale unui element în medii în care suportul nativ al browserului este indisponibil. Biblioteca monitorizează lățimea și înălțimea elementelor DOM țintă în timp real, declanșând callback-uri personalizate ori de câte ori dimensiunile se modifică. Adaptează componentele UI prin executarea ajustărilor de layout și a modificărilor de stil pe baza unor praguri de dimensiune predefinite, mai degrabă decât pe dimensiunea generală a ferestrei browserului. Instrumentul gestionează aceste adaptări prin mai multe mecanisme, inclusiv injectarea de variabile CSS dinamice, comutarea claselor bazată pe praguri și utilizarea API-ului ResizeObserver pentru a sincroniza dimensiunile elementelor cu foile de stil.

    Executes user-defined JavaScript functions when element dimensions cross specific size thresholds.

    JavaScriptcsselement-querymedia-query
    Vezi pe GitHub↗4,243
  • alex-d/trumbowygAvatar Alex-D

    Alex-D/Trumbowyg

    4,147Vezi pe GitHub↗

    Trumbowyg este un editor WYSIWYG JavaScript ușor utilizat pentru a crea și formata conținut rich-text și HTML direct într-un browser web. Servește drept instrument pe partea de client pentru generarea de markup HTML semantic și autorarea conținutului web. Proiectul dispune de o arhitectură modulară, bazată pe plugin-uri, care permite adăugarea de noi comenzi de formatare și butoane de toolbar. Oferă o interfață configurabilă unde layout-ul toolbar-ului poate fi personalizat printr-un array predefinit, iar etichetele pot fi traduse prin fișiere de localizare. Editorul acoperă o gamă largă de capabilități de manipulare a conținutului, inclusiv formatarea aspectului textului, gestionarea tabelelor și încorporarea multimedia pentru imagini și audio. Include sanitizare HTML integrată pentru a filtra markup-ul lipit față de o listă albă de tag-uri permise și oferă instrumente pentru gestionarea istoricului de editare prin funcționalitatea undo și redo.

    Triggers specific callbacks when the editor's internal state changes, such as focus shifts or content modifications.

    JavaScript
    Vezi pe GitHub↗4,147
  • civiccc/react-waypointAvatar civiccc

    civiccc/react-waypoint

    4,046Vezi pe GitHub↗

    react-waypoint este o componentă React și un instrument de urmărire a viewport-ului care execută funcții bazate pe vizibilitatea unui nod DOM într-o zonă scrollabilă. Acesta monitorizează când elementele intră sau părăsesc viewport-ul browserului sau un container de scroll specificat pentru a declanșa callback-uri. Proiectul permite implementarea scroll-ului infinit, încărcarea leneșă a activelor și animații declanșate la scroll. Permite definirea containerelor de scroll personalizate și configurarea limitelor viewport-ului folosind offset-uri pentru a determina exact când se declanșează evenimentele. Instrumentul oferă urmărirea poziției elementelor și monitorizarea vizibilității atât pentru scroll vertical, cât și orizontal. Include controlul sensibilității declanșatorului și limitarea ratei evenimentelor (throttling) pentru a gestiona execuția callback-urilor în timpul scroll-ului rapid.

    Provides callbacks that execute automatically when elements enter or exit the viewport state.

    JavaScript
    Vezi pe GitHub↗4,046
Înapoi12Înainte
  1. Home
  2. Software Engineering & Architecture
  3. Event-Driven Hook Systems
  4. State-Driven Callbacks

Explorează sub-etichetele

  • Interaction Lifecycle CallbacksFunctions triggered by specific user interaction states, such as entering or leaving a target area. **Distinct from State-Driven Callbacks:** Focuses on user-interaction lifecycle events (enter/leave/tilt) rather than internal system state thresholds.
  • State Lifecycle Callbacks1 sub-tagFunctions that execute automatically upon entering or exiting specific states. **Distinct from State-Driven Callbacks:** Distinct from state-driven callbacks: specifically targets the lifecycle phases (entry/exit) of a state machine rather than threshold-based triggers.