Code Monkey home page Code Monkey logo

campfire's Issues

Move filesharing UI into Chat box

#32 introduced file sharing within a call. That implementation added the fileshare UI as part of the video controls (Controls.tsx), but the ideal design would be to integrate it as part of the Chat box. This means the chat log would also have tha Accept/reject file transfer buttons, as well as a way to share files.

Rationale behind this is that file sharing doesn't fit with the rest of the controls (mute, video mute, screenshare, hangup) and makes more sense as a chat feature. Being part of chat means the context around a file (like why its being sent) is captured as a chat message, followed by the file itself.

Typing in dialing input keeps sending network calls to icepond gall agent

Describe the bug
Every keypress in the dialer input element causes a network call to fetch information from the Icepond gall agent. This is unnecessary, we only need to fetch that information once. Mulitple calls is redudant.

To Reproduce
Steps to reproduce the behavior:

  1. Open campfire app and network tab dev tools
  2. Every keypress inside of the dialer input box (where @p's get entered) results in an network call to the ship's icepond agent.
  3. Icepond agent responds with list of ICE servers to us

Expected behavior
We only need to fetch the list of ICE servers once, no need to check each keypress.

Screenshots
icepond-weirdness

Solution
This is likely some problem with the StartMeeting component being refreshed each time the inner input compontent changes.

Group calling

Need to coordinate setting up WebRTC connections between multiple clients.

Share files with participants in call

Describe the feature you'd like
Easy way to share files with people I'm in a call with.

Additional context
WebRTC supports sending arbitrary data over the wire. Should be possible to chunk up a file and send it over the data channels. We want functionality similar to https://www.sharedrop.io/

load contract-store data

Describe the feature you'd like
We need to load contact store into local storage and provide a simple metadata lookup function.

[Github repo enhancement] Automatic preview of campfire

Describe the feature you'd like
Upon creation of a PR, some infra (github actions, circle CI, jenkins, etc) should create two fake ships (~zod and ~bus), install the campfire desks, install the frontend, then provide links to the two instances (ship1.myships.com/apps/campfire/, ship2.myships.com/apps/campfire/).

Context
Whenever I make a PR, first thing I do is make two fakezods, install the campfire desk, build the React project, then upload that to the ship via the /docket/upload page. This is error prone, and creates friction if someone wants to contribute to the project.

App takes over my camera immediately upon opening

Describe the feature you'd like
Upon opening the app from grid and sitting on the "Gather Around" screen, the app requests access to my camera. This request seems reasonable at this moment in time, but then it actively turns on my camera and leaves it on even if I am not actively calling. It would be preferable for the camera to only turn on / be claimed by %campfire when I am actively calling someone else.

Is your feature request related to a problem? Please describe.
Roughly speaking, this could create a perception of a privacy problem.

Additional context
Google Meet is some decent prior art on this with their 'home screen' frame.

Permanent paths for calling ships

Describe the feature you'd like

If I go to /apps/campfire/chat/zod, it should initiate a call with ~zod. I don't want to have to open the app, type in their name, then hit "call".

to consider, can this be done using urbit links? something like web+urbitgraph://campfire/call/~datryn-ribdun

Chat messages don't wrap correctly

Describe the bug
Chat messages don't wrap enough, sometimes go offscreen

To Reproduce
Steps to reproduce the behavior:

  1. Be in a call with someone
  2. Send them a really long chat

Expected behavior
Long text should wrap around

Screenshots
Screenshot from 2022-09-22 17-00-28

Screenshare bugs

  • users report shared screen being cut into horizontal thirds ("The top and bottom are cut and you can't see the other person's screen")
  • when users stop sharing screen, the video player doesn't close. Causes problems when start sharing -> stop sharing -> start sharing again.

Notes

I'm tracking these in one place, but they may be addressed in seprate PRs. If anyone finds other screenshare bugs, please comment so I can add them to this list

Use consistent icon system

#32 added some files from the react icon library. This breaks the current pattern of creating our own icon files, and mixes with the Holium design-system's icons. We should have a consistent icon system, although I'm not sure which is best.

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.