Git Product home page Git Product logo

captain-fact-frontend's Introduction

Discord

AGPL3 GitHub release Release Status Coverage Status Translation status



Getting started

If you're already have the API running locally, a simple npm install && npm start should be enough. Otherwise follow the procedure below:

Front-end is started on http://localhost:3333

A default account should have been created for you with e-mail=[email protected] and password=password.

Conventions

File structure

app
├── API => API libraries for both REST API and websockets
├── assets => Assets imported from JS
├── components => All react components
├── i18n => Translations
├── lib => Misc utilities
├── state => All redux related
│   ├── comments
│   │   ├── effects.js => Async actions creators, always return a promise
│   │   ├── record.js => The object representing a single comment
│   │   ├── reducer.js => Reducer + actions creators, always return an action object
│   │   └── selectors.js => Re-select selectors to select data in state
│   └── ...
├── static => Static assets, directly copied to the public directory
├── styles => Stylesheets in .sass format, all included from application.sass
└── router.jsx => Application router and main entry point

Styling

Styling is based on Bulma and was initially customized with SASS. However we now include styled-components, styled-system and @rebass/grid. This has become the prefered way to build new components.

Icons

We bundle a custom font icon built with IcoMoon. You can find scripts and config for this in dev/ but the preferred (and easiest) way to add new icons today is to use https://styled-icons.js.org/.

Main Libraries / Frameworks

Linked projects

License

GNU AFFERO GENERAL PUBLIC LICENSE Version 3

Permissions of this strongest copyleft license are conditioned on making available complete source code of licensed works and modifications, which include larger works using a licensed work, under the same license. Copyright and license notices must be preserved. Contributors provide an express grant of patent rights. When a modified version is used to provide a service over a network, the complete source code of the modified version must be made available.

See LICENSE for more info.

captain-fact-frontend's People

Contributors

akh0 avatar betree avatar boffire avatar clm-roig avatar comradekingu avatar dependabot-preview[bot] avatar dependabot-support avatar dependabot[bot] avatar fenollp avatar francoispeyret avatar greenkeeper[bot] avatar julien-leclercq avatar kaazy avatar lebedeviv avatar maitremanuel avatar mansil avatar manu1400 avatar miragide avatar najeal avatar nevjoia avatar ngambini avatar rs232dz avatar spidersouris avatar steelstyle avatar vayel avatar vguen avatar vhfmag avatar wdestin avatar weblate avatar wopata-ngambini 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

Watchers

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

captain-fact-frontend's Issues

[iOS / Firefox] Closing fullscreen makes video disappear

Reported by DocFred

Describe the bug

Sous iOs/Firefox, si l'on agrandi la vidéo YT en cours de lecture en plein écran, et que l'on en ressort(Echap), le cadre vidéo disparait de la plateforme.
A priori ca se produit que lorsque la vidéo passe un mark de citation, si je lance les 30 premières secondes et qu'il n'y a pas de citation, je ne constate pas le souci

Screenshots

capture_cf

System:

  • iOS
  • Firefox

"Bulletproof" achievement (install web browser extension)

We need to think of a way to detect if extension is installed from https://captainfact.io.

A way to achieve that could be to inject a special variable in global scope like redux devtools extension is doing. We could check for that special variable after authenticating user and send a request if the achievement is missing from user.achievements. This involve modifications on extension.

API endpoint doesn't yet exists but will most probably be:

PUT /users/me/achievements/bulletproof

An in-range update of eslint-plugin-cypress is breaking the build 🚨

The devDependency eslint-plugin-cypress was updated from 2.1.3 to 2.2.0.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

eslint-plugin-cypress is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • continuous-integration/travis-ci/push: The Travis CI build failed (Details).

Release Notes for v2.2.0

2.2.0 (2018-12-28)

New features 👍

  • Add 'assertion-before-screenshot' rule (e5f0504)
Commits

The new version differs by 7 commits.

  • e5f0504 feat: Add 'assertion-before-screenshot' rule
  • 0b1b4b6 Rule meta data - recommended off
  • 97d75ff Final fixes and test fixes
  • c8d3d73 Fixes and refinements
  • a02e4ce Add new rule - assertion before screenshot
  • 8c561bb remove json comment
  • 7bc063d update readme regarding compatibility of rules

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

Sass styles hot reload

Recent webpack migration broke sass styles hot reload, which means page must be refreshed to see a change in styles when developing.

Statement add "Cancel" button requires two clics to be closed when empty

Bug submitted by Piouscott:

Screencast

1- Cliquer sur le bouton "+" en bas de page.
2- Dans l'encadré du commentaire, cliquer sur le bouton "Annuler"
Observé:
Le clique sur le bouton "annuler" génère le message d'erreur "Doit faire au moins 10 caractères", et l'encadré n'est pas supprimé. C'est seulement au deuxième clique que l'encardé disparaît
Attendu:
Le clique sur "annuler" devrait avoir le même effet que le clique sur le bouton "X" en bas de page.

Comment / Statement text normalizer is breaking caret position

Description

Comment text formatter, which ensure we don't put more than one empty line or that we don't put too much consecutives spaces is breaking caret position when trying to insert a consecutive space at the middle. This also appends when trying to insert multiple empty lines.

selection_333

Expected behavior

Caret should always stay at its position, even if this means allowing multiple consecutive spaces

Platform

Chromium 62.0.3202.62 (Official Build) on Linux (Ubuntu 16.04)

Bubble menu: Disable and show cross if statement form is active

When clicking on "add statement" then scrolling down, some stuff can be confusing: autoscroll is disabled, and user may not understand why. He may not be able to remember he had the form open in the first place.

We can improve this experience by making the bubble menu grey and showing a close icon if statement form is currently active:

selection_026

Clicking on this cross would close the statement.

An in-range update of reactjs-popup is breaking the build 🚨

The dependency reactjs-popup was updated from 1.3.0 to 1.3.1.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

reactjs-popup is a direct dependency of this project, and it is very likely causing it to break. If other packages depend on yours, this update is probably also breaking those in turn.

Status Details
  • continuous-integration/travis-ci/push: The Travis CI build failed (Details).

Release Notes for [email protected]
FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

UTF8 characters (especially font awesome) random bug on prod

Font awesome randomly show ugly characters instead of icons, while i it successfully loads (no network errors). A simple refresh usually fix the error.

It is not only font awesome, as seen on the bottom right of following screenshot UTF8 quotes are broken too.

selection_020

An in-range update of react-hot-loader is breaking the build 🚨

The devDependency react-hot-loader was updated from 4.6.5 to 4.7.0.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

react-hot-loader is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • continuous-integration/travis-ci/push: The Travis CI build failed (Details).

Release Notes for Hook the hooks

Bug Fixes

  • complain if hot patches not present, fixes #1173 (efc3d6b)
  • deactivate RHL in dev mode if eval not allowed (f995b0d)
  • disable ErrorBoundaries for a first run, fixes #1172 (2a834c2)
  • Support Context.Provider reload and React.memo, fixes #1169 (09e48eb)

Features

  • activate pureRender by default (4e971b5) (this is a big deal)
  • implement flexible hot injections (b7e8f5e)
  • make errors retryable to mitigate hooks update (9967fde) ("a retry button")
Commits

The new version differs by 23 commits.

  • 7089062 chore(release): 4.7.0
  • 4b36cc8 safe cleanup after hot render
  • 5e6cc4b Merge pull request #1170 from gaearon/fixes-february
  • e23eea8 fix gramma
  • 02d1725 React 15 tests
  • 4e971b5 feat: activate pureRender by default
  • f52d59c stable
  • b6c1d9b (non pure render) Throw if render method does not exists, fixes #1177
  • 3d021ca stabilize error boundaries
  • f6472dc stabilize for the pureRender option
  • b7e8f5e feat: implement flexible hot injections
  • 9967fde feat: make errors retryable to mitigate hooks update
  • e2c34f8 update styled example
  • 3ef584c fix tests
  • 76a2776 reword hook injection

There are 23 commits in total.

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of enzyme-to-json is breaking the build 🚨

The devDependency enzyme-to-json was updated from 3.3.4 to 3.3.5.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

enzyme-to-json is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • continuous-integration/travis-ci/push: The Travis CI build could not complete due to an error (Details).

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of validator is breaking the build 🚨

The dependency validator was updated from 10.8.0 to 10.9.0.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

validator is a direct dependency of this project, and it is very likely causing it to break. If other packages depend on yours, this update is probably also breaking those in turn.

Status Details
  • continuous-integration/travis-ci/push: The Travis CI build could not complete due to an error (Details).

Release Notes for 10.9.0

See the changelog.

Commits

The new version differs by 20 commits.

  • ef5f7a1 10.9.0
  • 2ea9186 chore: update changelog and min version
  • 4d409bd feat(isMobilePhone): add en-GH locale (Ghana) (#928)
  • 209a801 feat(isMobilePhone): add en-MU locale (Mauritian) (#925)
  • c12af3c fix: sync changelog and min version
  • d557d44 fix(isMobilePhone): Indonesian locale update (#916)
  • 8445383 fix: sync changelog and min version
  • cec8841 fix(isMobilePhone): fix bn-BD locale prefixes (#913)
  • 0031015 chore: rebuild with babel 7
  • 425320c chore: upgrade to babel 7 (#915)
  • dad8961 fix: extra validation for dates (#910)
  • 509324f chore: update changelog and min version
  • 3a2d661 fix: transpile isJWT changes (#906)
  • 439c51f feat(isJWT): signature is not required (#906)
  • 8c4a74c feat(isURL): add option to reject email-like URLs (#901)

There are 20 commits in total.

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of enzyme is breaking the build 🚨

There have been updates to the enzyme monorepo:

    • The devDependency enzyme was updated from 3.8.0 to 3.9.0.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

This monorepo update includes releases of one or more dependencies which all belong to the enzyme group definition.

enzyme is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • continuous-integration/travis-ci/push: The Travis CI build failed (Details).

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

Video pauses when clicking on time-change links

Describe the bug
When clicking on time-changing links like the carets on statements or the time links video is paused which is pretty annoying when trying to find the right position for a statement.

This may be a regression from YouTube player as we haven't touched this code for some time.

To Reproduce
Steps to reproduce the behavior:

  1. Go to a video
  2. Click on play
  3. Click on Add statement
  4. Try to click on the carets or the time mark

Screenshots
Preview

System:
Tested on Chrome / Firefox.

Collective moderation

Description

Comments with a certain number of flags get reported and are no more returned from the API. Modifications, such as editing a statement or adding a speaker can also be flagged.

To ensure a collective moderation we should create a moderation platform reserved to users with a huge reputation.

Moderators privileges

For each reported comments, moderators have 3 choices:

  • Confirm flag => +1
  • Not sure => 0
  • Abusive flag => -1

Rules

We need at least 3 moderators to vote before taking a decision. Then we generate a score:

score = (nb_confirm - nb_abuse) / total_feedbacks

Which generates a score between -1.0 and +1.0.
  • If score <= -0.66 => Abusive flag
  • If score >= 0.66 => Confirm flag
  • Else => Wait to have more feedbacks
Examples
  • 2 confirm + 1 not sure = 2 * 1 + 0 = 2 => Confirm
  • 1 confirm + 2 not sure = 1 + 0 + 0 = 1 => Re-ask with more moderators
  • 1 confirm + 2 abusive = 1 - 1 - 1 = -1 => Re-ask with more moderators
  • 2 abusive + 1 not sure = 2 * (-1) + 0 = -2 => Abusive flag

Reputation updates

We update reputations depending on this score. But to be fair and not penalize users when decisions are complicated,
we first determine the strength of the moderators consensus with:

consensur_strength = (abs_score - min_val) * (1 / (1 - min_val))

Which gives us a value between 0.0 and 1.0 that we use to ponderate reputatin gain or loss.

Moderators reward

  • A special achievement
  • Moderators should gain additional reputation (not too much) when they take the time to check flags

Interface

Moderation platform should take two shapes:

  1. Check all flagged comments and actions linked to a video
  2. A page where we would get a random action or comment assigned, one at a time

For each action, moderator should be presented a box like this one (extended version here):
Action moderation preview

This is pretty much what we show on the history page without the Approve / Flag buttons on actions.

  • Full page prototype with random actions

Full page prototype with random actions

  • (Bonus) Full page prototype on video collective moderation

Full page prototype on video collective moderation

Code

Frontend

  • app/constants.js => Some action types and entities are defined here.
    If you want to add Comment entity: export const ENTITY_COMMENT = 4
  • assets/assets/locales/en/history.json => Actions / Entities translations indexed by their numeric identifier. Again comment type is 4 - you can add it there.

API endpoints (REST)

Methods presented in details deal with actions. We're always posting feedback on an action (ex: "create comment") and not on the entity directly (comment). An action looks like that:

{
    "user": {
      "id": 2126,
      ...
    },
    "id": 1972,
    "type": 1, // Action type (create, remove, update...etc)
    "entity": 4, // Entity (comment, statement, video...etc)
    "entity_id": 538,
    "time": "2017-11-12T04:26:12.573219",
    "changes": {
      // Changes made with this action
      "text": "I like to move it"
    }
  }

GET all reported actions for video (implement random first)

Request
  • Method: GET
  • Path: /moderation/videos/:video_id
Response
  • Status: 200
  • Response body:
[
  {
    "user": {
      "username": "User-G4R8umEp45",
      "reputation": 0,
      "registered_at": "2017-11-12T04:26:12.569109",
      "picture_url": null,
      "name": "Nella",
      "mini_picture_url": null,
      "id": 2126,
      "achievements": [
        1
      ]
    },
    "type": 1,
    "time": "2017-11-12T04:26:12.573219",
    "id": 1972,
    "entity_id": 538,
    "entity": 4,
    "changes": {
      "text": "I like to move it"
    }
  },
  {
    "user": {
      "username": "User-546rUsidyO",
      "reputation": 0,
      "registered_at": "2017-11-12T04:26:12.574333",
      "picture_url": null,
      "name": "Junior",
      "mini_picture_url": null,
      "id": 2128,
      "achievements": [
        1
      ]
    },
    "type": 1,
    "time": "2017-11-12T04:26:12.575786",
    "id": 1973,
    "entity_id": 539,
    "entity": 4,
    "changes": {
      "text": "I like to move it"
    }
  },
  {
    "user": {
      "username": "User-VwiSbNEwv-",
      "reputation": 0,
      "registered_at": "2017-11-12T04:26:12.576610",
      "picture_url": null,
      "name": "Patricia",
      "mini_picture_url": null,
      "id": 2130,
      "achievements": [
        1
      ]
    },
    "type": 1,
    "time": "2017-11-12T04:26:12.578125",
    "id": 1974,
    "entity_id": 540,
    "entity": 4,
    "changes": {
      "text": "I like to move it"
    }
  },
  {
    "user": {
      "username": "User-GcfGMKNkx7",
      "reputation": 0,
      "registered_at": "2017-11-12T04:26:12.579005",
      "picture_url": null,
      "name": "Abigail",
      "mini_picture_url": null,
      "id": 2132,
      "achievements": [
        1
      ]
    },
    "type": 1,
    "time": "2017-11-12T04:26:12.580488",
    "id": 1975,
    "entity_id": 541,
    "entity": 4,
    "changes": {
      "text": "I like to move it"
    }
  },
  {
    "user": {
      "username": "User-JxQBL38e_W",
      "reputation": 0,
      "registered_at": "2017-11-12T04:26:12.581350",
      "picture_url": null,
      "name": "Mason",
      "mini_picture_url": null,
      "id": 2134,
      "achievements": [
        1
      ]
    },
    "type": 1,
    "time": "2017-11-12T04:26:12.583214",
    "id": 1976,
    "entity_id": 542,
    "entity": 4,
    "changes": {
      "text": "I like to move it"
    }
  }
]

GET random actions to verify

Request
  • Method: GET
  • Path: /moderation/random
  • Params: (optional) count => number of actions to return (default: 5)
Response
  • Status: 200
  • Response body:
[
  {
    "user": {
      "username": "User-IVrwM7LAhj",
      "reputation": 0,
      "registered_at": "2017-11-12T04:26:12.519572",
      "picture_url": null,
      "name": "Florencio",
      "mini_picture_url": null,
      "id": 2114,
      "achievements": [
        1
      ]
    },
    "type": 1,
    "time": "2017-11-12T04:26:12.521282",
    "id": 1961,
    "entity_id": 535,
    "entity": 4,
    "changes": {
      "text": "Jouje is the best jouje"
    }
  },
  {
    "user": {
      "username": "User-fyflKOAHFL",
      "reputation": 0,
      "registered_at": "2017-11-12T04:26:12.515274",
      "picture_url": null,
      "name": "Rosalyn",
      "mini_picture_url": null,
      "id": 2112,
      "achievements": [
        1
      ]
    },
    "type": 1,
    "time": "2017-11-12T04:26:12.517785",
    "id": 1960,
    "entity_id": 534,
    "entity": 4,
    "changes": {
      "text": "I like to move it...."
    }
  },
  {
    "user": {
      "username": "User-MnHUvqvy01",
      "reputation": 0,
      "registered_at": "2017-11-12T04:26:12.523268",
      "picture_url": null,
      "name": "Ora",
      "mini_picture_url": null,
      "id": 2116,
      "achievements": [
        1
      ]
    },
    "type": 1,
    "time": "2017-11-12T04:26:12.524697",
    "id": 1962,
    "entity_id": 536,
    "entity": 4,
    "changes": {
      "text": "No problemo, he said"
    }
  }
]

POST feedback

Request
  • Method: POST
  • Path: /moderation/feedback
  • Request body:
{
  "value": 1,
  "action_id": 1969
}
Response
  • Status: 204

Resources

Stackoverflow blog posts about collective moderation:

Autoscroll doesn't work on freshly added statements

Damien Le Boulaire reported that autoscroll doesn't work with freshly added statements.

To Reproduce
Steps to reproduce the behavior:

  1. Go to a Video page with some statements already created
  2. Create a new statement in the middle of the other
  3. Move the video time and ensure it scrolls

System

  • OS: Windows 10
  • Browser: Google Chrome

Ability to offer and receive reputation bounties to verify statements

We sometimes would like for people to check a statement for us (no time, no experience in the subject...)

Like Stackoverflow with issues, users with high reputation could offer some of this reputation as a bounty on a statement for it to be verified. They then decide of the best response(s?) and user(s?) get a reputation bounty

Rules

  • Invested reputation cannot be withdraw; it is lost if not given
  • Cannot give bounty to self
  • Min bounty ~5pts
  • Max bounty ~20pts
  • Need to have at least 125 reputation
  • Can only place ~10 bounties per day
  • Multiple users can place bounties, for a max total of 60pts
  • Bounty reward can be split between multiple users

Interface

Preview

  • Add bounty icon may go to the top right of the statement
  • User placing the bounty should be presented a slider or a number input between 5 and 20
  • When rewarding, a similar slider set by default to MAX should be presented to select how much we want to give to the user

Contribute

Discussion is open, ideas and coders are welcome 😙

An in-range update of browserslist is breaking the build 🚨

The devDependency browserslist was updated from 4.3.4 to 4.3.5.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

browserslist is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • continuous-integration/travis-ci/push: The Travis CI build could not complete due to an error (Details).

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

Upgrade to react-select v2

React-select v2 has a cleaner API and lot of improvements. See https://react-select.com/upgrade-guide

As of today we use it in two components:

  • In SpeakersSelect.jsx
    Should be straightforward as it just displays a list of speakers names with their pictures.

  • In AddSpeakerForm.jsx
    Will be a little more trickier as it supports autocompletion, but new API should really improve the code here.

An in-range update of phoenix is breaking the build 🚨

The dependency phoenix was updated from 1.3.4 to 1.4.0.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

phoenix is a direct dependency of this project, and it is very likely causing it to break. If other packages depend on yours, this update is probably also breaking those in turn.

Status Details
  • continuous-integration/travis-ci/push: The Travis CI build could not complete due to an error (Details).

Commits

The new version differs by 1900 commits ahead by 1900, behind by 47.

  • 03243c6 Release 1.4.0
  • 8720941 Update compiled assets
  • ddb9f7d Document Phoenix.Presence callbacks (#3132)
  • 3b6bc38 Allow channels to immediately reconnect when the socket does (#3141)
  • d747637 Document Phoenix.Channel callbacks (#3130)
  • bf1872b Remove extra newline in generated context test cases (#3129)
  • 9cf6944 Do not assume project in current directory (#3131)
  • 937a061 Avoid .formatter.exs files with conflicting inputs (#3135)
  • f6e541a Phoenix.ConnTest.redirected_to/2 returns a string, not %Plug.Conn{} (#3138)
  • e2f2018 Cowboy 2 does not accept error return in init, closes #3140
  • 4ce6c55 Remove -rc from Ecto deps
  • 46565f0 Maintain private socket state from transport connect
  • 7a9c3a3 Reduces ecto setup instructions (#3137)
  • 4b6d81f Allow custom keyword pairs to be passed to the socket macro. Closes #3136
  • ef13823 Improve error message for configured JSON library

There are 250 commits in total.

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

Notify user when a new statement is focused in background

This will be useful when playing a video on CaptainFact in background while navigating to another tabs.

  • Make favicon blink
  • Make a little sound
    • Find something gentle and with a free licence
    • Only trigger if CF tab is not active in browser
    • Add an entry in bubble menu to disable the sound

Possible sounds:

Next page nav button is disabled on https://captainfact.io/videos

The next page nav button is disabled whereas I am on the videos first page and there are obviously more videos to show.

Other users don't have the problem and I don't have neither when I am in private browsing.

To Reproduce
Steps to reproduce the behavior:

  1. Go to https://captainfact.io
  2. Click on the videos icon in the side menu
  3. the next page button is disabled

Screenshots
capture d ecran 2018-12-07 a 15 00 43
capture d ecran 2018-12-07 a 15 08 47

System:

  • Mac OS mojave
  • chrome
  • Version 70.0.3538.110
  • uBlock origin

Content Security Policy

Hi,

I'm facing the same error again "Server connection failed, try refreshing the page". After many refreshing sometime it works, sometine not.

So today I checked the console:

screen shot 2018-04-22 at 4 14 33 pm

Then the websocket connection seems to fail: "Firefox can not connect to the server at wss: //api.captainfact.io/socket/websocket?token=undefined&vs=2.0.0."

I'm using Ghostery, Ublock, Vimvixen :)

PS: Nice job for the site 😀

Speakers list

Easy feature for anyone who wants to get started on this project: implement a list of all speakers with a nice display and link it to the (currently disabled) sidebar menu entry:

Speakers menu

API endpoint to come, feel free to comment if you want to work on this!

[Chrome] Videos embed in comments fullscreen bug

This issue is really close to what we had with #1

It is most probably introduced by FlipMove whose CSS transitions don't play well with fullscreen. There's no easy fix right now and we can only hope Google will do something on their side.

Comments fullscreen has been disabled for now but is still triggered when double-clicking on video.

bug preview


Signaled by DocFred

An in-range update of reactjs-popup is breaking the build 🚨

The dependency reactjs-popup was updated from 1.3.1 to 1.3.2.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

reactjs-popup is a direct dependency of this project, and it is very likely causing it to break. If other packages depend on yours, this update is probably also breaking those in turn.

Status Details
  • continuous-integration/travis-ci/push: The Travis CI build failed (Details).

Release Notes for [email protected]
  • Popup recalculates position when window is resized #62 fix #48
  • Fix type definition by @sloschi ( #59 )
FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of react is breaking the build 🚨

There have been updates to the react monorepo:

    • The dependency react was updated from 16.6.1 to 16.6.2.
  • The dependency react-dom was updated from 16.6.1 to 16.6.2.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

This monorepo update includes releases of one or more dependencies which all belong to the react group definition.

react is a direct dependency of this project, and it is very likely causing it to break. If other packages depend on yours, this update is probably also breaking those in turn.

Status Details
  • continuous-integration/travis-ci/push: The Travis CI build could not complete due to an error (Details).

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

Embed video sources

We should display thumbnails / players on sources when available.

thumb_preview

Should use the existing ReactPlayer component to embed sources from the following providers:

  • Youtube
  • Facebook
  • Soundcloud
  • Vimeo
  • Dailymotion

Data should never be preloaded, especially if implementing direct file embedding (see ReactPlayer documentation for this part).

Forcing video position changes sound volume

  1. Click on add statement
  2. Set sound volume on the player to a low value (but not muted)
  3. Click on left or right caret on the statement to move time position and change play offset
  • Effect

Move position and sound volume value is set to maximum

  • Expected

Should move position without changing sound volume level

An in-range update of webpack is breaking the build 🚨

The devDependency webpack was updated from 4.26.1 to 4.27.0.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

webpack is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • continuous-integration/travis-ci/push: The Travis CI build could not complete due to an error (Details).

Release Notes for v4.27.0

Features

  • When using functions as plugins they are now also called with the compiler as parameter
    • This make it possible to use arrow functions as plugins
  • splitChunks.maxSize now emits a warning when minSize > maxSize
  • Loaders have now access to a getResolve method to create their own resolver function with custom options

Bugfixes

  • splitChunks.cacheGroups.xxx.enforce now behaves as documented and enforce chunk creation
  • splitChunks.cacheGroups.xxx.enforce now no longer deletes minSize for maxSize
  • fixes a bug where splitChunks cause cacheGroups to be incorrectly merged when using the same name
    • now conditions are considered per cacheGroup
    • the correct cache group comment is displayed in stats
  • fixes a bug which causes providedExports not to be updated on rebuilds when using export * from
Commits

The new version differs by 12 commits.

  • f47bf8b 4.27.0
  • a67ffcd Merge pull request #8452 from webpack/feature/resolveWithOptions
  • 96f625c Merge pull request #8457 from webpack/bugfix/rebuild-provided-exports
  • 56feccc convert test case to normal function for node.js 6 support
  • 2f4296e fix a bug which causes incorrect providedExports for cached modules
  • f944002 Merge pull request #8451 from webpack/bugfix/split-chunks
  • 162da1c add getResolve method to loader context
  • 3b46b48 enforce doesn't affect minSize for maxSize
  • 72a8a1f Merge pull request #8440 from Connormiha/oprimize-chunk-can-be-integrated
  • 537d3e4 Cache hasRunstime in chunk
  • e3e8a68 Merge pull request #8405 from xiaoxiaojx/fix-function-plugin-apply
  • 70b9a1b fix parameter missing when plugin type is a funtion

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of redux-actions is breaking the build 🚨

The dependency redux-actions was updated from 2.6.1 to 2.6.3.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

redux-actions is a direct dependency of this project, and it is very likely causing it to break. If other packages depend on yours, this update is probably also breaking those in turn.

Status Details
  • continuous-integration/travis-ci/push: The Travis CI build could not complete due to an error (Details).

Release Notes for v2.6.3
FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

Cannot compile with brunch 2.10.12

When trying to compile with brunch 2.10.12, the following error pops out:

09:10:54 - info: compiling
09:10:58 - info: compiling.
/root/.nvm/versions/node/v6.12.3/lib/node_modules/brunch/node_modules/source-map/lib/source-map-generator.js:289
      throw new Error('Invalid mapping: ' + JSON.stringify({
      ^

Error: Invalid mapping: {"generated":{"line":574,"column":10},"source":"node_modules/bulma/sass/utilities/controls.sass","original":{"line":26,"column":-1},"name":null}
    at SourceMapGenerator_validateMapping [as _validateMapping] (/root/.nvm/versions/node/v6.12.3/lib/node_modules/brunch/node_modules/source-map/lib/source-map-generator.js:289:13)
    at SourceMapGenerator_addMapping [as addMapping] (/root/.nvm/versions/node/v6.12.3/lib/node_modules/brunch/node_modules/source-map/lib/source-map-generator.js:101:12)
    at /root/.nvm/versions/node/v6.12.3/lib/node_modules/brunch/node_modules/source-map/lib/source-node.js:351:13
    at SourceNode_walk [as walk] (/root/.nvm/versions/node/v6.12.3/lib/node_modules/brunch/node_modules/source-map/lib/source-node.js:230:9)
    at SourceNode_walk [as walk] (/root/.nvm/versions/node/v6.12.3/lib/node_modules/brunch/node_modules/source-map/lib/source-node.js:226:13)
    at SourceNode_walk [as walk] (/root/.nvm/versions/node/v6.12.3/lib/node_modules/brunch/node_modules/source-map/lib/source-node.js:226:13)
    at SourceNode_toStringWithSourceMap [as toStringWithSourceMap] (/root/.nvm/versions/node/v6.12.3/lib/node_modules/brunch/node_modules/source-map/lib/source-node.js:342:8)
    at concat (/root/.nvm/versions/node/v6.12.3/lib/node_modules/brunch/lib/fs_utils/generate.js:125:15)
    at generate (/root/.nvm/versions/node/v6.12.3/lib/node_modules/brunch/lib/fs_utils/generate.js:181:14)
    at Promise.all.changed.map.file (/root/.nvm/versions/node/v6.12.3/lib/node_modules/brunch/lib/fs_utils/write.js:166:12)
    at Array.map (native)
    at write (/root/.nvm/versions/node/v6.12.3/lib/node_modules/brunch/lib/fs_utils/write.js:165:30)
    at BrunchWatcher.compile (/root/.nvm/versions/node/v6.12.3/lib/node_modules/brunch/lib/watch.js:293:5)
    at FileList.fileList.on (/root/.nvm/versions/node/v6.12.3/lib/node_modules/brunch/lib/watch.js:154:14)
    at emitNone (events.js:86:13)
    at FileList.emit (events.js:185:7)
    at Timeout.timer.setTimeout [as _onTimeout] (/root/.nvm/versions/node/v6.12.3/lib/node_modules/brunch/lib/fs_utils/file_list.js:171:14)
    at ontimeout (timers.js:386:11)
    at tryOnTimeout (timers.js:250:5)
    at Timer.listOnTimeout (timers.js:214:5)

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.