Code Monkey home page Code Monkey logo

andromeda-viewer's People

Contributors

dependabot[bot] avatar greenkeeper[bot] avatar greenkeeperio-bot avatar jfmherokiller avatar snyk-bot avatar terreii avatar

Stargazers

 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

andromeda-viewer's Issues

IM chat creates different session in official viewer

Fix IM chat creating different session on original and official viewer.

Expected Behavior

Answers to a avatar using the official viewer going into the same chat session.

Actual Behavior

IM messages from this viewer go into a different chat session, than the ones from the original viewer and its forks.

Steps to reproduce

An avatar that uses the original viewer or its forks sends an IM to an avatar using this viewer.
Then answer to it.
The avatar that uses the original viewer will now have two IM chat sessions.

Test it

Write some tests!
Most of the viewer is not tested. And must be tested by hand!
Automate it

Logout

Andromeda can't log you out of a grid/session. Also if that avatar will log into an other viewer, you will not be kicked!

  • Logout button.
  • Handle logout.
  • Reset state.
  • Handle kicked out of session and similar.

Document it

There is little to no documentation.

  • Large parts of the source code aren't documented. An if, it isn't good.
  • There is no general documentation of the architecture and other.
  • The README.md has almost nothing in it.

Rework login component

Expected Behavior

Login component should be separated into different components.

  • main
  • sub components for saved and new avatar.

Actual Behavior

Everything is in one.

Steps to reproduce Actual Behavior

===

Rework sign in/up popups

Is your feature request related to a problem? Please describe.
The sign in, sign up and sign out popups are minimal. There is no description, checks or enter doesn't work!

Describe the solution you'd like
Update it and add the missing functionalities.

Describe alternatives you've considered
none.

Rework how Chat messages are saved

Is your feature request related to a problem? Please describe.
Currently a chat message is saved before it is displayed. But not everything that is saved, is needed!
And if there will be later other functionality (like saving an anonym avatar, or marking a message as read) that they would have to implement their own save function.

Describe the solution you'd like
Use reselect and/or reselect-map as the reactor pattern (from Human-Redux) to react to changes in the chat reducers, and save them.

Describe alternatives you've considered
Refactor the save function. And use it in every action that changes a message.

Add directory readmes

Is your feature request related to a problem? Please describe.
Not everyone is familiar with re-select and the reactors. Other aspects of the viewer are also clearly stated.

Describe the solution you'd like
Add a README.md to every directory, that describes what the concept of the files in it are.

Describe alternatives you've considered
Put everything in docs/

Additional context
README will be shown if a directory is viewed on github. And it is closer to the code.

Add EventQueue

Is your feature request related to a problem? Please describe.
EventQueue is used by many SL/OS features as an event source. They are for example:

  • Display name changes
  • Avatar property updates
  • IM conference session join requests
  • Groups IM session join success notices
  • IM session participant updates
  • Neighbor SIM notice
  • Teleport updates
  • and more ...

Describe the solution you'd like
Implement an EventQueueGet solution.

Test actions and other parts

Is your feature request related to a problem? Please describe.
Actions are currently not tested! This would also indirectly test many dependencies.

Describe the solution you'd like
Test actions!

Describe alternatives you've considered
Manually test every action ...

An in-range update of rc-tabs is breaking the build 🚨

The devDependency rc-tabs was updated from 9.5.5 to 9.5.6.

🚨 View failing branch.

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

rc-tabs 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).

Commits

The new version differs by 1 commits.

  • 10fd52b lock create-react-context version for license issue

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 🌴

Use react-redux

Use react-redux for react to redux binding.

  • It has a better way of connecting the store with components.
  • Actions can be bind once.
  • Better performance!

Send basic objects from UDP-Stack

Expected Behavior

Parsed packages should be able to be directly with Redux.

Actual Behavior

Parsed packages are instances of a class and must be transformed into objects.

Steps to reproduce Actual Behavior

===

Steps to fix

Split parsing the object and functions for accessing values into different modules.

Install

Hi. You to ask You to do a full installation guide. And the next question, perhaps as something to combine with OpenSim?

An in-range update of rc-tabs is breaking the build 🚨

The devDependency rc-tabs was updated from 9.5.0 to 9.5.1.

🚨 View failing branch.

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

rc-tabs 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).

Commits

The new version differs by 2 commits.

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 🌴

Better menu

Expected Behavior

The Menu in the top-bar should be styled.

Actual Behavior

No styles for 's

Steps to reproduce Actual Behavior

--

Display AGBs

Is your feature request related to a problem? Please describe.
Linden Lab requires that a viewer shows a AGB and privacy info on the first launch.

Describe the solution you'd like
On the first launch and creation of an account the AGBs and privacy info should be shown.
It should include:

  • Information about me
  • How the user-data is saved and encrypted
  • How the encryption works (with example)
  • Future plans of monetisation (premium account)
  • This open source repository

Describe alternatives you've considered
If I want the viewer to be listed in the third party viewer directory, then there is none.

Additional context
This is required in the Policy on Third-Party Viewers.

Nicer UDP Message API

Make the API for received UDP Messages nicer.

It could be a class with methods for getting values and more.

Add tests for writing docs

Expected Behavior

There are tests that can be run, to catch insensitive, inconsiderate writing and bad spelling in docs.

Actual Behavior

There are no tests.

Steps to reproduce Actual Behavior

None

Change page title

Expected Behavior

The title changes by login and logout of a grid. And displays the Avatar identifier (Avatar-name@grid).
When the viewer loads, the title is directly changed. This could be done with this new method, too.

Actual Behavior

Nothing changes.

Steps to reproduce Actual Behavior

Login

Additional info

The title could be changed with React Helmet.
It would work great with also setting the title to the viewer-name on page load. Which is currently done in the login component.

To many Acks will be send

Describe the bug
Acks on the end of the package, tries to send more then 255 Acks.

To Reproduce
Steps to reproduce the behavior:

  1. Go to a busy region.
  2. After a time the ack count value will be to hight

Expected behavior
Only send less then 255 acks.

Desktop (please complete the following information):

  • OS: Mac
  • Browser: Firefox
  • Version 60

Add aXe (accessibility) tests

Is your feature request related to a problem? Please describe.
There are at the moment no tests for accessibility!

Describe the solution you'd like
Add aXe tests! One solution could be jest-axe.

Describe alternatives you've considered
Manual testing and the aXe developer browser extension (Firefox and Chrome).

Additional context
A web app should be accessible! It would be helpful if some tests would run automatically!

Detect URLs in chat

Is your feature request related to a problem? Please describe.
URLs in chat are not clickable.

Describe the solution you'd like
Detect URLs and add a anchor (<a>) to it.

Additional context
The should have a rel='noopener noreferrer'.

Mobile first/ready

Is your feature request related to a problem? Please describe.
Mobile is one of the primary platforms. A good user experience on the mobile platforms is a must!
At the moment the UI is not responsive and every usability on mobile platforms is more by the browsers then the viewer.

Describe the solution you'd like
Use a smartphone for development and make the UI responsive.

SIM UDP-Messages get resend

Expected Behavior

SIM only sends messages once.

Actual Behavior

SIM is resending UDP-Messages that are send as reliable.

Steps to reproduce

Receive an IM.

Add an issue template

Add an issue template.
This should be created under a .github folder.

  • Claim this issue
  • Create a .github folder
  • Create a ISSUE_TEMPLATE.md with the issue template

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

The devDependency jest-enzyme was updated from 6.0.5 to 6.1.0.

🚨 View failing branch.

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

jest-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 could not complete due to an error (Details).

Release Notes for 6.1.0
  • Added 3 new matchers! toContainMatchingElement, toContainMatchingElements and toContainMatchingElements (@GreenGremlin)
Commits

The new version differs by 5 commits ahead by 5, behind by 2.

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 🌴

Scroll to the bottom on new messages

Expected Behavior

On new Messages (Local chat and IM) and the last message is in view, then the chat display should scroll to the new message (bottom).

Actual Behavior

It doesn't scroll down.

Steps to reproduce Actual Behavior

Receive more messages than fit on the screen.

Todo List

  • make chatDialog scroll-able
  • make chatDialog on new messages scroll to the bottom if it was at the bottom

Move to create-react-app

Move to using create-react-app and react-scripts for building.
This would ease development, because most of the Webpack setup would be handled be it.

Add new issue templates

Expected Behavior

Have an issue template for bugs and one for features.

Actual Behavior

There is only one template. One more suited for bugs.

Steps to reproduce Actual Behavior

Create an issue.

Additional info

  • Transform the old template into a bug template.
  • Create a feature template.

Replace Immutable.js with immer

Is your feature request related to a problem? Please describe.
While the API of Immutable.js is Javascript oriented, it is different.
But immer uses Javascript Objects and Arrays!

Describe the solution you'd like
Replace the Data in the store with Javascript Objects and Arrays and use immer to manipulate them.

Describe alternatives you've considered
Use plain Objects and Arrays, and manipulate them with map, filter, reduce, Object.assign and more.

Additional context
Immer uses proxies to find out what did change. Outside of the store they will be plain Objects and Arrays. It is also smaller.

Change license

To better protect this project against patents and copy-bot versions of it, should this project's license be switched.
Possible licenses would be the Mozilla Public License 2.0 or Apache License 2.0.

Generate MAC-addresses

Is your feature request related to a problem? Please describe.
For all sessions and users the same MAC-address is used! If a MAC-address would be blocked, then everyone would be blocked!
And the macaddress package has a security bug!

Describe the solution you'd like
Generate a MAC-address-like string from the hoodie-user-id.

Describe alternatives you've considered
Remove the macaddress package. Because it has a security bug!

An in-range update of styled-components is breaking the build 🚨

The devDependency styled-components was updated from 4.0.3 to 4.1.0.

🚨 View failing branch.

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

styled-components 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 v4.1.0
  • Performance optimization for fully static (no function interpolation) styled-components by avoiding using ThemeConsumer since it isn't necessary, by @mxstbr (see #2166)

  • Allow disabling "speedy" mode via global SC_DISABLE_SPEEDY variable, by @devrelm (see #2185)

    To make use of this, you can either set SC_DISABLE_SPEEDY in your app's entry file or use something like webpack.DefinePlugin to do it at build time:

    webpack.DefinePlugin({
      SC_DISABLE_SPEEDY: true,
    });
  • Attrs can now be passed a function (see #2200); thanks @oliverlaz for providing an early PoC PR for this!

    e.g.:

    styled.div.attrs(props => ({ 'aria-title': props.title }))``;
  • Fix the warnTooManyClasses dev helper not being totally dead code eliminated in production (see #2200)

  • Deprecate functions as object keys for object-form attrs (see #2200)

    e.g.:

    styled.div.attrs({ 'aria-title': props => props.title })``; // bad
    styled.div.attrs(props => ({ 'aria-title': props.title }))``; // good

    Support for this will be removed in styled-components v5. The primary impetus behind this change is to eliminate confusion around basic functions vs styled-components vs React components provided as values in the object-form attrs constructor, each of which has different handling behaviors. The single outer function to receive the props and then return a props object is conceptually simpler.

  • The standalone CDN build is now UMD-compliant and can be used with RequireJS, etc.

  • Add pixels to unitless numbers when object interpolation is used, by @Fer0x (see #2173)

  • Trying to interpolate a non-styled component into CSS is now a hard error, rather than a warning (see #2173)

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 🌴

Refactor incoming IM actions

Is your feature request related to a problem? Please describe.
The current implementation of IMs is not straight forward and misses some edgechases.

Describe the solution you'd like
Create for every IM-type an action. And have a main function that calls them.

Describe alternatives you've considered
The current implementation works for most IM types. But not all. So it has to change.
But moving most of the handling into reducers would be an alternative.

Additional context
Radegast has the clearest implementation (thank you @lkalif).

Remove session

Split up session.js.

  • Move all data into stores.
  • Move all actions and functions into actions.
  • Find a way to handle the circuit.

Add group chat

Expected Behavior

Group chats are supported. Join on login for all groups chat sessions.

Actual Behavior

Group session aren't supported and not joined on login.

Steps to reproduce Actual Behavior

Login.

Steps to fix this bug

  • Load all groups the avatar belongs to
  • Load group names
  • Display groups
  • Start group sessions
  • Use group name for group chat name
  • add possibility for sending other IM types (here group session)
  • clean up IM functions

Add end to end encryption

Expected Behavior

Docs in hoodie for avatars and chats should be encrypted. So that they can’t be read in the server.

Actual Behavior

All docs are unencrypted!

Steps to reproduce Actual Behavior

None.

UDP stack should give feedback about reliable packages

Is your feature request related to a problem? Please describe.
There is correctly no feedback if a reliable Package was received by the sim (its ACK was send back).
This could make writing actions, easier.

Describe the solution you'd like
circuit.send(msg, true) should return a promise if a package was send reliable. This promise should resolve as soon as the ACK was received, and reject if it did timeout.

Describe alternatives you've considered
There could be special functions that listen to received messages and resolve if a criteria is meet.

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

There have been updates to the react monorepo:

    • The devDependency react 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 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 🌴

Add a pull request template

Expected Behavior

A template is in every new pull request.

Actual Behavior

All text must be written by hand.

Steps to reproduce Actual Behavior

Open a pull request.

Travis-CI builds fails

Expected Behavior

The tests pass.

Actual Behavior

The install script of some C++ packages fail!

Steps to reproduce Actual Behavior

Push to a pull request.

Don't load the complete IM history

Is your feature request related to a problem? Please describe.
If the history of a IM chat gets to long, everything will be loaded!

Describe the solution you'd like
Only load the last messages, and if the user scrolls to the top of the chat-dialog, then load more.

UDP disconnect

Is your feature request related to a problem? Please describe.
If the Connection from the Server to the SIM is disconnected, the viewer should detect it.

Describe the solution you'd like
Circuit should keep track of the time of the last received package. And if it is to long ago, than it should close itself.

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.