Git Product home page Git Product logo

rx-use's Introduction

rx-use

Sensor and side-effect library for rxjs. Do you want to contribute? See, help wanted.

Observables

  • location$ — browser location and history sensor.
    • pathname$ — browser location pathname sensor.
  • network$ — returns consolidate network status info.
    • onLine$boolean whether user is on-line.
    • connection$ — information about user's network connection.
  • windowSize$ and windowSizeRaf$ — browser window dimension sensor.
  • darkTheme$ — emits true if UI should use dark theme.
  • matchMedia$() — returns boolean indicating media query match.
  • stdin$ — listen for data coming from STDIN.
  • ansiKeys$ — listen for ANSI terminal key presses.
  • pubsub — publish/subscribe mechanism for inter-tab communication in browser.
  • tablist — keeps track of all same origin tabs, elects leader and allows to send messages to all tabs or create private channels between any two tabs.

Operators

  • raf() — de-bounces events using window.requestAnimationFrame.

Other

  • fromStream() — constructs observable from Node.js readable stream.

Most observables imported from this library have ReadonlyBehaviorSubject type. Which is an Observable with an extra .getValue() to access the current value of the observable.

type ReadonlyBehaviorSubject<T> = Observable<T> & Pick<BehaviorSubject<T>, 'getValue'>;

License

Unlicense — public domain.

rx-use's People

Contributors

semantic-release-bot avatar streamich avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

rx-use's Issues

Ambient Light

Use Ambient Light Events API to create:

  • ambientLigth$ observable.
  • Make use of ambientLight$ observable in darkMode$ observable to switch between modes depending on ambient light value.

Media query

Add observable that emits on media query state changes.

Gyroscope

Use web Gyroscope API to create gyroscope$() observable.

gyroscope$({frequency: 60}).subscribe(() => {});

breakpoints$

Observable which given a user screen breakpoint spec, emits the name of current. screen size.

Moving average

Add operator that tracks moving average value over n last values.

React hook that returns unmount notifier observable

Create React hook which returns and indicator observable which signals when component was unmounted.

const MyComponent = () => {
  const unmounted$ = useUnmounted();

  useEffect(() => {
    something$.pipe(
      takeUntil(unmounted$)
    );
  }, []);
};

Whether user has low-end experience

  • Implement isLowEndExperience$ observable, same as here, but it should be an observable listening for network changes instead.
  • prefers-reduced-motion media uqery.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.