Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@todaytix/seats-io-seating-chart-wrapper

Package Overview
Dependencies
Maintainers
3
Versions
18
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@todaytix/seats-io-seating-chart-wrapper

seats-io-seating-chart-wrapper React component

  • 1.3.0
  • latest
  • npm
  • Socket score

Version published
Weekly downloads
1
decreased by-50%
Maintainers
3
Weekly downloads
 
Created
Source

seats-io-seating-chart-wrapper

Travis npm package Coveralls

See the clubhouse doc for information on how this repository is used in the mobile apps and web and how to test changes locally in this repo and publish to npm to be imported/consumed by the mobile apps and website

Testing Locally

You need to make changes first to src/index.js and then build them by running npm run build which puts the minimized output into the umd/@todaytix folder.

In the repository there is a file called seats-io-example.html which you can load in the browser to see your changes take effect. It looks for the minimized seating chart JS file located at umd/@todaytix/seats-io-seating-chart-wrapper.min.js which is overwritten every time you update src/index.js and run npm run build.

Two values in seats-io-example.html need to be replaced to correctly load the seating chart: event id and public key. Public key is the seats io public key that a dev can get for you. Event id is a different key that exists per showtime and can be found in the allocated_showtime table of the database.

Example - Code snippet (Vanilla JS)

  <script src="./umd/@todaytix/seats-io-seating-chart-wrapper.min.js"></script>
  <script>
    this.seatingChart = new SeatsIOSeatingChart(
      'seat-selector', // div id
      'todaytix-example-2', // event id
      '[public-key]', // public key
      {
        holdOnSelect: false, // used for testing purposes
        selectBestAvailable: false, // used for testing purposes
        hideTooltip: false, 
      },
      {
          onChartRendered: function onChartRendered(chart) {
            // platform logic here
          },
          onChartRenderingFailed: function onChartRenderingFailed(chart) {
            // platform logic here
          },
          onObjectClicked: function onObjectClicked(object) {
            // platform logic here
          },
          onObjectSelected: function onObjectSelected(object, selectedTicketType) {
            // platform logic here
          },
          onObjectDeselected: function onObjectDeselected(object, selectedTicketType) {
            // platform logic here
          },
          onObjectDeselected: function onObjectMouseOver(object) {
            // platform logic here
          },
          onObjectMouseOut: function onObjectMouseOut(object) {
            // platform logic here
          },
          onSelectedObjectBooked: function onSelectedObjectBooked(object) {
            // platform logic here
          },
          onBestAvailableSelected: function onBestAvailableSelected(objects, nextToEachOther) {
            // platform logic here
          },
          onBestAvailableSelectionFailed: function onBestAvailableSelectionFailed() {
            // platform logic here
          },
          onScrolledOutOfBoundsVertically: function onScrolledOutOfBoundsVertically(amount) {
            // platform logic here
          },
          onHoldSucceeded: function onHoldSucceeded(objects) {
            // platform logic here
          },
          onHoldFailed: function onHoldFailed(objects) {
            // platform logic here
          },
          onReleaseHoldSucceeded: function onReleaseHoldSucceeded(objects) {
            // platform logic here
          },
          onReleaseHoldFailed: function onReleaseHoldFailed(objects) {
            // platform logic here
          },
          onSelectionInvalid: function onSelectionInvalid(violations) {
            // platform logic here
          }
        },
      },
    );

    this.seatingChart.render();

    // deselecting seats
    this.seatingChart.deselectObjects(objects);
    // chart.deselectObjects(['A-1', 'A-2']);

    // selecting seats
    this.seatingChart.deselectObjects(objects);
    // chart.selectObjects(['A-1', 'A-2']);

    // update price range
    this.seatingChart.updatePriceRange(min,max);
    // chart.updatePriceRange(20,100);

    // update inventory map
    this.seatingChart.updateInventoryMap(inventoryMap);
    // chart.updateInventoryMap(inventoryMap);

    // get selected objects
    this.seatingChart.getSelectedObjects();
    // ['A-1','A-2'];
    
    // zoom to selected objects
    this.seatingChart.zoomToSelectedObjects();
  </script>

Example - Code snippet (ReactJS)

  import SeatsIOSeatingChartWrapper from 'SeatsIOSeatingChartWrapper';
  ...
  
  componentDidMount() {
    if (!__ENV__.CLIENT) {
      return;
    }
    
    const extraConfig = {
      accessibleHeading: settings.accessibleHeading,
      accessibleText: settings.accessibleText,
      inventoryMap,
      hideTooltip,
      max: maxRange,
      min: minRange,
      orphanText: settings.orphanText,
      partialViewHeading: settings.partialViewHeading,
      partialViewText: settings.partialViewText,
      taxDescription: settings.taxDescription,
    };

    this.seatingChart = new SeatsIOSeatingChart(
      SEAT_IO_CONTAINER,
      eventId,
      publicKey,
      {
        extraConfig,
        holdOnSelect: false,
        selectBestAvailable: false,
      },
      {
        onBestAvailableSelected: this.onBestAvailableSelected,
        onBestAvailableSelectionFailed: this.onBestAvailableSelectionFailed,
        onChartRendered: this.onChartRendered,
        onChartRenderingFailed: this.onChartRenderingFailed,
        onHoldFailed: this.onHoldFailed,
        onHoldSucceeded: this.onHoldSucceeded,
        onObjectClicked: this.onObjectClicked,
        onObjectDeselected: this.onObjectDeselected,
        onObjectMouseOut: this.onObjectMouseOut,
        onObjectMouseOver: this.onObjectMouseOver,
        onObjectSelected: this.onObjectSelected,
        onReleaseHoldFailed: this.onReleaseHoldFailed,
        onReleaseHoldSucceeded: this.onReleaseHoldSucceeded,
        onScrolledOutOfBoundsVertically: this.onScrolledOutOfBoundsVertically,
        onSelectedObjectBooked: this.onSelectedObjectBooked,
        onSelectionInvalid: this.onSelectionInvalid,
        onSelectionValid: this.onSelectionValid,
      },
    );
    this.seatingChart.render();
  }

Keywords

FAQs

Package last updated on 03 Nov 2021

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc