• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

metalabdesign / flowtip / 144
91%
master: 57%

Build:
Build:
LAST BUILD BRANCH: renovate/react-monorepo
DEFAULT BRANCH: master
Ran 31 Aug 2017 12:31AM UTC
Jobs 1
Files 7
Run time 1s
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

pending completion
144

push

travis-ci

10xjs
Rewrite FlowTip component and layout algorithm

This is a major overhaul of both the internal mechanics and public interface of the FlowTip library.

The most important changes are a total separation of the layout algorithm from the React component and an a much simpler React component implementation.

With the React component and layout algorithm decoupled, the stage is set for additional FlowTip implementations on other platforms.

**`flowtip-core`**

The new layout algorithm (now published as `flowtip-core`) is now an entirely pure function with no coupling to React or to the DOM environment. It now has very clearly defined behavior around even the most unusual layout edge cases.

The algorithm is designed to serve the FlowTip React component, but exists as a separate module for both test isolation and to be available for additional uses.

The algorithm also now features full test coverage using a novel ascii renderer combined with Jest snapshots.

**`flowtip-react-dom`**

The previous `flowtip` component module is succeeded by `flowtip-react-dom`. It provides a friendly React interface to the underlying `flowtip-core` algorithm with specific bindings to DOM events and the React component lifecycle.

The main architectural motivations for the design of the new of the React component are simplicity and declarative composability with a simple interface inspired by modules like `react-motion`, `react-router`, and `redux-form`.

The component behaves as an inline "decorator" which enhances a provided `Content` component with tooltip layout behavior. Because it avoids owning any unnecessary state, it requires a parent component (or global state e.g. Redux) to manage the target rect and "active" state.

It also forgoes implementing what could be seen as valuable core features for the sake of simplicity. Additional libraries like `react-resize-observer`, `react-motion`, `tj/react-click-outside`, and `focus-trap-react` are recommended to compose a full user experience. Since `flowtip-react-dom` renders no markup of it's own and defers all rendering responsibility to consumer defined components, composition with the mentioned libraries should be without conflict.

This minimal approach offers the best balance of core features and compatibility with various consumer use cases.

412 of 442 branches covered (93.21%)

322 of 353 relevant lines covered (91.22%)

38.91 hits per line

Jobs
ID Job ID Ran Files Coverage
1 144.1 31 Aug 2017 12:31AM UTC 0
91.22
Travis Job 144.1
Source Files on build 144
Detailed source file information is not available for this build.
  • Back to Repo
  • Travis Build #144
  • e77cd4af on github
  • Prev Build on 5.x.x (#142)
  • Next Build on 5.x.x (#146)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc