Code Monkey home page Code Monkey logo

vue-instantsearch's Introduction

vue-instantsearch's People

Contributors

bobylito avatar cedroux avatar codeharmonics avatar dependabot[bot] avatar dhayab avatar ehayman avatar eunjae-lee avatar fabienmotte avatar francoischalifour avatar haroenv avatar iam4x avatar instantsearch-bot avatar jenjen75 avatar jschatz1 avatar julienbourdeau avatar kevintruby avatar lukyvj avatar mthuret avatar olance avatar rayrutjes avatar robertmogos avatar samouss avatar sarahdayan avatar tkrugg avatar ugurarici avatar vinceg avatar vvo avatar wojtekmieszczak avatar yannickcr avatar ymc-sise avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

vue-instantsearch's Issues

add metadata to each package

  • README.md
    • name of component
    • example of usage
  • package.json
    • name
    • description
    • git repo link (with path)
    • specific dependencies? (no * maybe)
  • tests

Settle on styles VS no styles as part of the components

The worst experience is to have to much default styles part of the components.

Even the simple fact as putting in bold an active refinement can have undesired effects when use in a CSS framework context.

Let's make sure we dissociate styles from the components. All of them.

Isolate widgets in their own repositories

IMO opinion it would be a good idea to extract all widgets from this repository.

PROS:

  • Show users how easy it is to create custom widgets
  • Only import the widgets and their sub-dependencies
  • Cleanup the exports

CONS:

  • Needs to npm install widgets 1 by 1 (maybe we could create a vue-algolia-search-widgets bundle) which includes commonly used widgets

Create a css bootstrap example

We have currently chosen to respect the DOM.

We must now ensure that it is still easy to integrate the components with existing frameworks like Bootstrap.

If it is not simple, we will need to consider refactoring some bits.

Find the best strategy regarding integration with existing CSS framework

As a user of a UI library, I will want to integrate the components with existing styles.

We should try to come up with an easy solution that allows us to easily be compatible with those.

Maybe this can be solved by only overriding classes. That would be ideal.
Also if this could be prepared at the highest level it would be perfect. Providing a specific build per framework that only overrides all the default classes of all components.

Remove all for input "name" props

Given we are moving away from a "form elements only" approach, and that the state is already hold by the Store, there is no need to name the different form elements.

It just adds more entropy to the current code.

Switch from buble to babel

  • allow JSX support
  • allow running tests on es6 files (leveraging babel vue plugin)
  • same config between jest tests and actual builds

POC URL sync

build a POC of what URL sync could look like.
It will remain a user concern though.

change name of build folder

build is usually used like dist (and thus often ignored in editors), How are other projects calling a directory with rollup configs?

Bootstrap docs

Tooling:

Choose an easy to use tool for the docs, maybe just gitbook as a starter.

Navigation:

  • Getting Started
    • Introduction (What is this lib)
    • Installation
      • Compatibility Note
      • Release Notes
      • Direct <script> Include
      • CDN
      • NPM / YARN
    • Components
      • SearchStore
      • etc

Component:

For each component, we need to document:

Algolia index configuration requirement

  • If the component works only with some index settings, we need to explain those at the beginning
  • example: attributes for faceting / attributesToHighlight etc

Basic declarative example (html)

  • only show required props by default
  • not slots if not required

Props

  • Name
  • Possible values
  • Default value
  • Description

Slots

  • Name
  • Scoped (yes/no)
  • Props
  • Description

Classnames

  • name
  • modifiers (--disabled/--active/--first/etc)
  • description?

Question thread?

  • Add an interactive comment thread to every page so that users can ask questions

Find an elegant way to allow overriding of all classes

I think best would be to have a common API for all components.
User should be able to provide classes to override, i.e.

<ais-pagination :classes="{
  'ais-pagination': 'pagination',
  'ais-pagination__item': 'page',
  'ais-pagination__item--active': 'active',
}" />

Specs:

  • Should only override provided classes and keep others
  • Should allow by design to be overloaded on all components (idea being that user can provide all his classes per component without bloating the actual DOM)

Not sure where this should be handled.

WDYT @Haroenv

Naming

Conform with existing IS implems for most of the components.

Keep "results" and "navigationTree".

Use the same prefix everywhere (to be defined):

  • ais
  • alg
  • algolia

Lazy loading results

To be able to lazy load results, we need to keep a computed hits value inside the searchResults widget

Hits vs Results battle

We still have places where we talk about hits (mainly in the search results component).

We should either go full-in for hits or go with results.

I know that we both chose to name it Results when we first used Algolia, but if we use that naming, we need to ensure "hits" is never used anywhere.

cc @Haroenv

Also "hits" is shorter than "results".

If we go for results we need to:

  • Convert classes that contain hits
  • Expose results instead of hits in the search results slot
  • Convert nbHits to totalResults in the SearchStore
  • Convert hitsPerPage to resultsPerPage in the SearchStore (setter & getter)
  • Convert hits to results in the SearchStore
  • Update all components to rely on the new naming

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.