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

Découvrez les meilleurs dépôts open-source grâce à notre recherche par IA.

ExplorerRecherches sélectionnéesAlternatives open sourceLogiciels auto-hébergésBlogPlan du site
ProjetServeur MCPÀ proposNotre méthodologiePresse
Mentions légalesConfidentialitéConditions d'utilisation
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·

24 dépôts

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

Trouvez les meilleurs dépôts grâce à l'IA.Nous recherchons les dépôts les plus pertinents grâce à l'IA.
  • codermjlee/mjrefreshAvatar de CoderMJLee

    CoderMJLee/MJRefresh

    13,814Voir sur 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
    Voir sur GitHub↗13,814
  • daimajia/androidswipelayoutAvatar de daimajia

    daimajia/AndroidSwipeLayout

    12,365Voir sur 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
    Voir sur GitHub↗12,365
  • leecade/react-native-swiperAvatar de leecade

    leecade/react-native-swiper

    10,490Voir sur 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
    Voir sur GitHub↗10,490
  • restkit/restkitAvatar de RestKit

    RestKit/RestKit

    10,104Voir sur 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
    Voir sur GitHub↗10,104
  • pmndrs/use-gestureAvatar de pmndrs

    pmndrs/use-gesture

    9,618Voir sur 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
    Voir sur GitHub↗9,618
  • mango/slideoutAvatar de mango

    mango/slideout

    7,881Voir sur 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
    Voir sur GitHub↗7,881
  • thebird/swipeAvatar de thebird

    thebird/Swipe

    6,750Voir sur 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
    Voir sur GitHub↗6,750
  • pytransitions/transitionsAvatar de pytransitions

    pytransitions/transitions

    6,548Voir sur 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
    Voir sur GitHub↗6,548
  • phoboslab/jsmpegAvatar de phoboslab

    phoboslab/jsmpeg

    6,498Voir sur 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
    Voir sur GitHub↗6,498
  • pmndrs/levaAvatar de pmndrs

    pmndrs/leva

    5,981Voir sur GitHub↗

    Leva est un panneau de contrôle GUI React et un éditeur de paramètres en temps réel utilisé pour surveiller et ajuster l'état et les variables de l'application sans modifier le code ni recharger la page. Il fonctionne comme un débogueur d'état dynamique et une bibliothèque d'entrée extensible qui fournit une interface visuelle pour affiner les valeurs numériques, booléennes et textuelles au sein d'une application web en cours d'exécution. Le projet se distingue par un système de plugins qui permet la création de composants d'entrée personnalisés et de comportements spécialisés pour prendre en charge des types de données uniques. Il utilise l'inférence de type pour mapper automatiquement les données au widget visuel approprié, bien que ce mappage puisse être outrepassé pour forcer des types d'entrée spécifiques. L'interface prend en charge diverses catégories d'entrée, notamment les plages numériques, les vecteurs, les sélecteurs de couleur et les champs de téléchargement de médias. Les contrôles peuvent être organisés en dossiers hiérarchiques, affichés conditionnellement en fonction d'autres valeurs et synchronisés avec des magasins de données externes. Le système surveille également le cycle de vie de l'édition, permettant des rappels lorsque les utilisateurs commencent et terminent leurs interactions pour optimiser les performances des opérations coûteuses.

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

    TypeScript
    Voir sur GitHub↗5,981
  • jonkykong/sidemenuAvatar de jonkykong

    jonkykong/SideMenu

    5,819Voir sur GitHub↗

    SideMenu est une bibliothèque de menu de navigation iOS et un framework de navigation pour application mobile écrit en Swift. Il fournit des composants réutilisables pour implémenter des menus latéraux coulissants animés et des tiroirs de navigation au sein des applications iOS. Le framework prend en charge la navigation par balayage continu, permettant aux utilisateurs de passer d'un menu à l'autre sur les côtés opposés de l'écran en un seul mouvement. Il inclut un système de coordination pour gérer plusieurs instances de menu à travers différents niveaux de navigation et un mécanisme de configuration globale pour assurer un comportement et une apparence cohérents sur tous les écrans de l'application. La bibliothèque gère la traduction de vue basée sur les gestes et le rendu de menu coulissant avec des effets de parallaxe intégrés. Elle fournit également des rappels de visibilité pilotés par l'état pour notifier les contrôleurs de vue lorsque les menus s'ouvrent ou se ferment.

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

    Swift
    Voir sur GitHub↗5,819
  • cferdinandi/smooth-scrollAvatar de cferdinandi

    cferdinandi/smooth-scroll

    5,444Voir sur GitHub↗

    Cette bibliothèque JavaScript de défilement fluide est un utilitaire frontend et un contrôleur de mouvement de viewport conçu pour animer les transitions vers des liens d'ancrage. Elle intercepte les clics de liens standard pour remplacer les sauts instantanés par un mouvement fluide vers les éléments cibles. La bibliothèque fournit des patterns d'accélération (easing) configurables et des contrôles de vitesse pour gérer l'accélération et la décélération. Elle inclut un mécanisme pour annuler immédiatement les animations actives et supporte le déclenchement de défilement programmatique via des appels de fonction directs. L'outil gère les offsets de positionnement pour éviter que le contenu cible ne soit caché derrière des en-têtes fixes et synchronise la barre d'adresse du navigateur pendant les transitions. Il dispose également d'un système de callback piloté par les événements qui déclenche des effets de bord lorsque les animations de défilement commencent, se terminent ou sont interrompues.

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

    JavaScriptanchor-linksanimate-scrollingjavascript
    Voir sur GitHub↗5,444
  • aasm/aasmAvatar de aasm

    aasm/aasm

    5,219Voir sur GitHub↗

    Cette bibliothèque fournit un framework pour définir des machines à états finis au sein de classes Ruby afin de gérer des cycles de vie d'objets complexes. Elle fonctionne comme un moteur de workflow déclaratif, permettant aux développeurs de modéliser les états, les événements et les transitions des objets via un langage dédié (DSL) lisible. En s'intégrant directement aux couches de persistance de base de données, le framework garantit que les changements d'état sont synchronisés avec les enregistrements de stockage tout en maintenant l'intégrité des données grâce à la gestion des transactions et au verrouillage des lignes. La bibliothèque se distingue en imposant des règles métier strictes via des gardes de transition conditionnels et en empêchant la modification directe de l'état, garantissant que tous les changements de cycle de vie se produisent exclusivement via des événements définis. Elle prend en charge plusieurs machines à états indépendantes au sein d'une même classe en les mappant à des champs de base de données distincts, offrant un contrôle de cycle de vie isolé. De plus, elle génère automatiquement des méthodes d'instance dynamiques pour interroger les états et déclencher des événements, ainsi que des scopes de requête de base de données qui simplifient le filtrage des objets en fonction de leur statut actuel. Au-delà de la gestion de base du cycle de vie, le framework inclut des utilitaires pour la localisation des noms d'état afin de prendre en charge les interfaces multilingues et fournit des hooks pour exécuter une logique personnalisée avant ou après les transitions. Il propose également des matchers de test spécialisés pour vérifier les configurations de machines à états et la logique de transition au sein des suites de tests automatisées. Le projet inclut des outils pour compiler le code source et les configurations en documentation structurée pour faciliter la référence système.

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

    Ruby
    Voir sur GitHub↗5,219
  • scottschiller/soundmanager2Avatar de scottschiller

    scottschiller/SoundManager2

    5,073Voir sur GitHub↗

    SoundManager2 est une API audio JavaScript et un moteur audio cross-browser conçu pour fournir une lecture cohérente à travers différents navigateurs web et appareils. Il fonctionne comme un wrapper audio HTML5 et un gestionnaire de lecture qui abstrait les API natives dans une interface unifiée, assurant la compatibilité via un mécanisme de basculement automatique entre les backends audio et codecs disponibles. La bibliothèque se distingue par un streamer audio RTMP pour la communication réseau avec des serveurs média et un parseur de métadonnées ID3 intégré pour extraire les titres de pistes, les informations d'artiste et les tags de genre des fichiers audio. Elle implémente également le streaming audio par plages d'octets pour charger les fichiers par petits segments, ce qui permet la recherche et la lecture sans télécharger le fichier entier en mémoire. Le système couvre de larges capacités en manipulation audio, incluant l'analyse de signal en temps réel pour les formes d'onde et les spectres de fréquence, ainsi que le traitement d'effets audio pour le pitch bending et l'égalisation. Il gère le cycle de vie complet des ressources des objets sonores, fournit une gestion de l'état de lecture avec une surveillance pilotée par événements, et inclut des outils pour vérifier le support des formats audio et déboguer les erreurs d'initialisation.

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

    JavaScript
    Voir sur GitHub↗5,073
  • wdullaer/materialdatetimepickerAvatar de wdullaer

    wdullaer/MaterialDateTimePicker

    4,630Voir sur GitHub↗

    MaterialDateTimePicker est une bibliothèque de composants UI conformes au Material Design pour Android, fournissant des widgets standardisés pour sélectionner des dates, des heures et des valeurs temporelles combinées. Elle implémente un ensemble de boîtes de dialogue personnalisables qui suivent le système Material Design pour garantir des interactions d'interface utilisateur cohérentes. La bibliothèque propose un sélecteur de date et d'heure combiné qui coordonne l'affichage séquentiel des boîtes de dialogue de calendrier et d'horloge. Elle fournit des contraintes spécifiques pour la sélection de la date et de l'heure, permettant la restriction des plages sélectionnables, des jours spécifiques et des intervalles de temps requis. La configuration visuelle est gérée via un système de style basé sur les thèmes, prenant en charge les couleurs d'accentuation personnalisées, les bascules de mode sombre et la personnalisation du texte des boutons d'action. Ces composants sont implémentés sous forme de fragments de dialogue pour gérer le cycle de vie et les superpositions d'écran au sein des applications Android.

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

    Javaandroidandroid-librarymaterial-design
    Voir sur GitHub↗4,630
  • patrickkunka/mixitupAvatar de patrickkunka

    patrickkunka/mixitup

    4,543Voir sur GitHub↗

    Mixitup is a dependency-free DOM element animation library and grid layout engine. It serves as a client-side content filter and data-driven UI controller designed to manage the smooth visual transition of HTML elements during insertion, removal, and sorting operations. The system specializes in creating interactive gallery interfaces and dynamic content filtering. It allows for the reorganization of elements using custom attributes or random sequences, while synchronizing the arrangement and visibility of interface elements with an underlying data model. Beyond filtering and sorting, the li

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

    JavaScriptanimationdom-manipulationfilter
    Voir sur GitHub↗4,543
  • mescroll/mescrollAvatar de mescroll

    mescroll/mescroll

    4,459Voir sur GitHub↗

    mescroll est une bibliothèque JavaScript de défilement infini et un gestionnaire de défilement web mobile conçu pour implémenter les modèles de pull-to-refresh et de chargement par le bas. Il fournit un système pour gérer le défilement tactile, gérer les états de pagination et intégrer ces comportements au sein d'applications Vue. La bibliothèque se distingue par un support spécialisé pour les interfaces de chat, permettant le chargement de données en ordre inverse et la capacité d'injecter des données dans une direction inverse pour simuler des historiques de messages. Elle inclut également un cache de défilement persistant pour préserver les décalages verticaux et les données de liste lorsque les utilisateurs naviguent entre différentes vues. Le projet couvre un large éventail de capacités d'interaction et de performance, incluant la suppression de l'effet de rebond natif du navigateur, le chargement différé d'images conscient de la fenêtre d'affichage (viewport) et le positionnement de défilement par programmation. Il fournit en outre des utilitaires pour gérer les états de pagination, personnaliser l'interface utilisateur de chargement et d'état vide, et implémenter la navigation de retour en haut de page.

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

    Vuebouncecss3html5
    Voir sur GitHub↗4,459
  • marcj/css-element-queriesAvatar de marcj

    marcj/css-element-queries

    4,243Voir sur GitHub↗

    Ce projet est une bibliothèque CSS responsive et un moniteur de dimensions d'éléments. Il fournit un polyfill pour les requêtes de conteneur CSS, permettant aux styles d'être appliqués en fonction des dimensions spécifiques d'un élément dans des environnements où le support natif du navigateur est indisponible. La bibliothèque surveille la largeur et la hauteur des éléments DOM cibles en temps réel, déclenchant des rappels personnalisés chaque fois que les dimensions changent. Elle adapte les composants d'UI en exécutant des ajustements de mise en page et des changements de style basés sur des seuils de taille prédéfinis plutôt que sur la taille globale de la fenêtre du navigateur. L'outil gère ces adaptations via plusieurs mécanismes, incluant l'injection de variables CSS dynamiques, le basculement de classes basé sur des seuils et l'utilisation de l'API ResizeObserver pour synchroniser les dimensions des éléments avec les feuilles de style.

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

    JavaScriptcsselement-querymedia-query
    Voir sur GitHub↗4,243
  • alex-d/trumbowygAvatar de Alex-D

    Alex-D/Trumbowyg

    4,147Voir sur GitHub↗

    Trumbowyg est un éditeur WYSIWYG JavaScript léger utilisé pour créer et formater du contenu riche et HTML directement dans un navigateur web. Il sert d'outil côté client pour générer du balisage HTML sémantique et créer du contenu web. Le projet présente une architecture modulaire basée sur des plugins qui permet l'ajout de nouvelles commandes de formatage et de boutons de barre d'outils. Il fournit une interface configurable où la disposition de la barre d'outils peut être personnalisée via un tableau prédéfini et les étiquettes peuvent être traduites via des fichiers de localisation. L'éditeur couvre un large éventail de capacités de manipulation de contenu, incluant le formatage de l'apparence du texte, la gestion des tableaux et l'intégration multimédia pour les images et l'audio. Il inclut une désinfection HTML intégrée pour filtrer le balisage collé par rapport à une liste blanche de balises autorisées et fournit des outils pour gérer l'historique d'édition via la fonctionnalité annuler et rétablir.

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

    JavaScript
    Voir sur GitHub↗4,147
  • civiccc/react-waypointAvatar de civiccc

    civiccc/react-waypoint

    4,046Voir sur GitHub↗

    react-waypoint est un composant React et un outil de suivi de viewport qui exécute des fonctions basées sur la visibilité d'un nœud DOM dans une zone défilable. Il surveille quand les éléments entrent ou quittent le viewport du navigateur ou un conteneur de défilement spécifié pour déclencher des rappels. Le projet permet la mise en œuvre du défilement infini, du chargement différé d'actifs et des animations déclenchées par le défilement. Il permet des définitions de conteneur de défilement personnalisées et des configurations de limites de viewport utilisant des décalages pour déterminer exactement quand les événements se déclenchent. L'outil fournit un suivi de la position des éléments et une surveillance de la visibilité pour le défilement vertical et horizontal. Il inclut un contrôle de la sensibilité de déclenchement et une limitation (throttling) des événements pour gérer l'exécution des rappels lors d'un défilement rapide.

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

    JavaScript
    Voir sur GitHub↗4,046
Préc.12Suivant
  1. Home
  2. Software Engineering & Architecture
  3. Event-Driven Hook Systems
  4. State-Driven Callbacks

Explorer les sous-tags

  • 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 sous-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.