Git Product home page Git Product logo

microsoft / essex-toolkit Goto Github PK

View Code? Open in Web Editor NEW
17.0 7.0 7.0 34.17 MB

Provides a set of useful tools, utilities, reusable components, and React hooks that are designed to capture common components and utilities common among Essex Alpha team projects.

Home Page: https://microsoft.github.io/essex-toolkit/

License: MIT License

JavaScript 0.51% TypeScript 99.07% HTML 0.14% CSS 0.01% Dockerfile 0.06% MDX 0.20%

essex-toolkit's People

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

essex-toolkit's Issues

Remove useDebounceCallback

The useDebounceCallback function, and the debounce function in the toolkit replicate functionality available in more popular and tested frameworks (lodash, ahooks). These hooks, and hooks that are similar in that their functionality is well implemented elsewhere, should be removed.

User Selection for Sorting Neighbors

Currently the sorting for neighbor communities is based on number of connections but allowing users to select either number of connections or size (members) as table order.

Visual hierarchy indicators

The hierarchy browser displays a "flat" list of tables that represent each level. Many tree representations (such as folder browsers) include indentation lines, expand/collapse buttons, and so on to allow browsability and hints on the tree structure. We should explore optional visual treatments that make the hierarchy more clear (and align with commonly understood tree representations).

Allow optional column label for HiearchyBrowser

Right now the communityId field is used to display the community headers (see here). However, this ID is often system-generated, and applications might have other labels for the community that are more meaningful to users. An optional label field, falling back to communityId if missing, would allow customization.

Use command pattern for table header bar buttons

We have two fixed buttons on each table header: toggle filter and download data CSV. However, different applications may want these or other commands to operate on each table. Using the command design pattern (with buttons on a command bar) would allow us to provide custom header actions.

Table order top-down or bottom-up

The hierarchy is represented bottom-up by displaying the leaf table at the top of the browser list, and walking up the tree as you scroll down the tables (with the tree root being the bottom table). This is the default because starting from a leaf provides a predictable path to the root from a known starting point, whereas starting at the root could require navigation decisions at each level to find a leaf. For our common use cases, we are starting from a known row item that we can trace to a leaf, and showing the leaf table at the top is the finest granularity (smallest community) they are a member of - typically the preferred list to explore first.

That said, top-down is a much more common way of navigating trees so there may be times when it is desirable to represent the tree in a more traditional manner.

Configurable columns in hierarchy browser tables

Right now the data tables display all of the known properties as columns. This could be configurable via a prop so that we can create custom views or allow users to edit their display preference.

Unify Background Color for Neighbor Column Bars

Use color selection based on theme variant as either nominal+ or nominal muted, and replace multiple colors in background image gradient with single color for clarity. Look into replacing CSS with SVG rect or div implementation.

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.