Merge branch 'master' into feature/multi-map
This commit is contained in:
commit
485595f7c8
@ -2,7 +2,6 @@
|
||||
"name": "owlbear-rodeo",
|
||||
"version": "1.2.0",
|
||||
"private": true,
|
||||
"homepage": "https://owlbear.rodeo",
|
||||
"dependencies": {
|
||||
"@stripe/stripe-js": "^1.3.2",
|
||||
"@testing-library/jest-dom": "^4.2.4",
|
||||
@ -10,7 +9,6 @@
|
||||
"@testing-library/user-event": "^7.1.2",
|
||||
"blob-to-buffer": "^1.2.8",
|
||||
"dexie": "^2.0.4",
|
||||
"gh-pages": "^2.2.0",
|
||||
"interactjs": "^1.9.7",
|
||||
"js-binarypack": "^0.0.9",
|
||||
"react": "^16.13.0",
|
||||
@ -28,8 +26,6 @@
|
||||
"webrtc-adapter": "^7.5.1"
|
||||
},
|
||||
"scripts": {
|
||||
"predeploy": "yarn build",
|
||||
"deploy": "gh-pages -d build",
|
||||
"start": "react-scripts start",
|
||||
"build": "react-scripts build",
|
||||
"test": "react-scripts test",
|
||||
|
@ -1 +0,0 @@
|
||||
owlbear.rodeo
|
@ -1,6 +1,6 @@
|
||||
import React from "react";
|
||||
import { ThemeProvider } from "theme-ui";
|
||||
import { HashRouter as Router, Switch, Route } from "react-router-dom";
|
||||
import { BrowserRouter as Router, Switch, Route } from "react-router-dom";
|
||||
|
||||
import theme from "./theme.js";
|
||||
import Home from "./routes/Home";
|
||||
|
@ -1,5 +1,7 @@
|
||||
import React from "react";
|
||||
import { Flex, Link } from "theme-ui";
|
||||
import { Flex } from "theme-ui";
|
||||
|
||||
import Link from "./Link";
|
||||
|
||||
function Footer() {
|
||||
return (
|
||||
@ -12,13 +14,13 @@ function Footer() {
|
||||
justifyContent: "center",
|
||||
}}
|
||||
>
|
||||
<Link m={2} href="#/about" variant="footer">
|
||||
<Link m={2} to="/about" variant="footer">
|
||||
About
|
||||
</Link>
|
||||
<Link m={2} href="#/" variant="footer">
|
||||
<Link m={2} to="/" variant="footer">
|
||||
Home
|
||||
</Link>
|
||||
<Link m={2} href="#/faq" variant="footer">
|
||||
<Link m={2} to="/faq" variant="footer">
|
||||
FAQ
|
||||
</Link>
|
||||
</Flex>
|
||||
|
13
src/components/Link.js
Normal file
13
src/components/Link.js
Normal file
@ -0,0 +1,13 @@
|
||||
import React from "react";
|
||||
import { Link as ThemeLink } from "theme-ui";
|
||||
import { Link as RouterLink } from "react-router-dom";
|
||||
|
||||
function Link({ to, ...rest }) {
|
||||
return (
|
||||
<RouterLink to={to}>
|
||||
<ThemeLink {...rest} />
|
||||
</RouterLink>
|
||||
);
|
||||
}
|
||||
|
||||
export default Link;
|
@ -1,7 +1,9 @@
|
||||
import React, { useState } from "react";
|
||||
import { IconButton, Box, Text, Link } from "theme-ui";
|
||||
import { IconButton, Box, Text } from "theme-ui";
|
||||
import adapter from "webrtc-adapter";
|
||||
|
||||
import Link from "../Link";
|
||||
|
||||
import StartStreamModal from "../../modals/StartStreamModal";
|
||||
|
||||
function StartStreamButton({ onStreamStart, onStreamEnd, stream }) {
|
||||
@ -20,7 +22,7 @@ function StartStreamButton({ onStreamStart, onStreamEnd, stream }) {
|
||||
Browser not supported for audio sharing.
|
||||
<br />
|
||||
<br />
|
||||
See <Link href="#/faq">FAQ</Link> for more information.
|
||||
See <Link to="/faq">FAQ</Link> for more information.
|
||||
</Text>
|
||||
</Box>
|
||||
);
|
||||
@ -33,7 +35,7 @@ function StartStreamButton({ onStreamStart, onStreamEnd, stream }) {
|
||||
Ensure "Share audio" is selected when sharing.
|
||||
<br />
|
||||
<br />
|
||||
See <Link href="#/faq">FAQ</Link> for more information.
|
||||
See <Link to="/faq">FAQ</Link> for more information.
|
||||
</Text>
|
||||
</Box>
|
||||
);
|
||||
|
@ -1,5 +1,5 @@
|
||||
import React from "react";
|
||||
import { Flex, Text, Link } from "theme-ui";
|
||||
import { Flex, Text, Link as ExternalLink } from "theme-ui";
|
||||
|
||||
import Footer from "../components/Footer";
|
||||
|
||||
@ -37,17 +37,22 @@ function About() {
|
||||
</Text>
|
||||
<Text variant="body2" as="p">
|
||||
Made by two people in Melbourne, Australia.{" "}
|
||||
<Link href="https://mitchmccaffrey.com/">Mitch</Link> and{" "}
|
||||
<Link href="https://twitter.com/nthouliss">Nicola</Link> were looking
|
||||
for an easy way to continue their d{"&"}d campaign as in-person
|
||||
interaction becomes harder during the COVID-19 crisis.
|
||||
<ExternalLink href="https://mitchmccaffrey.com/">Mitch</ExternalLink>{" "}
|
||||
and{" "}
|
||||
<ExternalLink href="https://twitter.com/nthouliss">
|
||||
Nicola
|
||||
</ExternalLink>{" "}
|
||||
were looking for an easy way to continue their d{"&"}d campaign as
|
||||
in-person interaction becomes harder during the COVID-19 crisis.
|
||||
</Text>
|
||||
<Text my={1} mt={2} variant="heading" as="h3" sx={{ fontSize: 3 }}>
|
||||
Contact
|
||||
</Text>
|
||||
<Text variant="body2" as="p">
|
||||
For questions or feedback email{" "}
|
||||
<Link href="mailto:contact@owlbear.rodeo">contact@owlbear.rodeo</Link>
|
||||
<ExternalLink href="mailto:contact@owlbear.rodeo">
|
||||
contact@owlbear.rodeo
|
||||
</ExternalLink>
|
||||
</Text>
|
||||
</Flex>
|
||||
<Footer />
|
||||
|
@ -1,5 +1,5 @@
|
||||
import React from "react";
|
||||
import { Flex, Text, Link, Image } from "theme-ui";
|
||||
import { Flex, Text, Link as ExternalLink, Image } from "theme-ui";
|
||||
|
||||
import Footer from "../components/Footer";
|
||||
|
||||
@ -56,9 +56,9 @@ function FAQ() {
|
||||
feature of the Screen Capture API. Currently the two browsers that
|
||||
support this are Google Chrome and Microsoft Edge. To see if your
|
||||
browser is supported see the{" "}
|
||||
<Link href="https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getDisplayMedia#Browser_compatibility">
|
||||
<ExternalLink href="https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getDisplayMedia#Browser_compatibility">
|
||||
Browser Compatibility chart
|
||||
</Link>{" "}
|
||||
</ExternalLink>{" "}
|
||||
on the Mozilla Developer Network.
|
||||
</Text>
|
||||
<Text my={1} variant="heading" as="h2" sx={{ fontSize: 3 }}>
|
||||
@ -87,9 +87,9 @@ function FAQ() {
|
||||
<Text mb={2} variant="body2" as="p">
|
||||
Owlbear Rodeo uses peer to peer connections to send data between the
|
||||
players. Specifically the{" "}
|
||||
<Link href="https://developer.mozilla.org/en-US/docs/Web/API/WebRTC_API">
|
||||
<ExternalLink href="https://developer.mozilla.org/en-US/docs/Web/API/WebRTC_API">
|
||||
WebRTC API
|
||||
</Link>{" "}
|
||||
</ExternalLink>{" "}
|
||||
is used. WebRTC allows the sending of two types of data, the first is
|
||||
media such as a camera or microphone and the second is raw data such
|
||||
as chat messages or in this case the state of the game map. <br /> As
|
||||
@ -104,20 +104,20 @@ function FAQ() {
|
||||
user experience so we have decided against it at this time. <br />
|
||||
The good news is that Safari will still work if the two devices are
|
||||
connected to a separate network as we make use of{" "}
|
||||
<Link href="https://en.wikipedia.org/wiki/Traversal_Using_Relays_around_NAT">
|
||||
<ExternalLink href="https://en.wikipedia.org/wiki/Traversal_Using_Relays_around_NAT">
|
||||
TURN
|
||||
</Link>{" "}
|
||||
</ExternalLink>{" "}
|
||||
servers which will handle the IP sharing and are not blocked by
|
||||
Safari. So if you're seeing errors and are on the same network as the
|
||||
other person if possible switch to separate networks and try again.
|
||||
For more information about Safari's restrictions on WebRTC see this{" "}
|
||||
<Link href="https://bugs.webkit.org/show_bug.cgi?id=173052">
|
||||
<ExternalLink href="https://bugs.webkit.org/show_bug.cgi?id=173052">
|
||||
bug report
|
||||
</Link>{" "}
|
||||
</ExternalLink>{" "}
|
||||
on the Webkit site or this{" "}
|
||||
<Link href="https://webkit.org/blog/7763/a-closer-look-into-webrtc/">
|
||||
<ExternalLink href="https://webkit.org/blog/7763/a-closer-look-into-webrtc/">
|
||||
blog post
|
||||
</Link>
|
||||
</ExternalLink>
|
||||
.
|
||||
</Text>
|
||||
<Text my={1} variant="heading" as="h3">
|
||||
@ -126,7 +126,10 @@ function FAQ() {
|
||||
<Text variant="body2" as="p">
|
||||
Owlbear Rodeo uses WebRTC to communicate between players. Ensure your
|
||||
browser supports WebRTC. A list of supported browsers can be found{" "}
|
||||
<Link href="https://caniuse.com/#feat=rtcpeerconnection">here</Link>.
|
||||
<ExternalLink href="https://caniuse.com/#feat=rtcpeerconnection">
|
||||
here
|
||||
</ExternalLink>
|
||||
.
|
||||
</Text>
|
||||
</Flex>
|
||||
<Footer />
|
||||
|
@ -1,5 +1,5 @@
|
||||
import React, { useState, useEffect, useCallback, useContext } from "react";
|
||||
import { Flex, Box, Text, Link } from "theme-ui";
|
||||
import { Flex, Box, Text } from "theme-ui";
|
||||
import { useParams } from "react-router-dom";
|
||||
|
||||
import db from "../database";
|
||||
@ -14,6 +14,7 @@ import Tokens from "../components/token/Tokens";
|
||||
import Map from "../components/map/Map";
|
||||
import Banner from "../components/Banner";
|
||||
import LoadingOverlay from "../components/LoadingOverlay";
|
||||
import Link from "../components/Link";
|
||||
|
||||
import AuthModal from "../modals/AuthModal";
|
||||
|
||||
@ -371,7 +372,7 @@ function Game() {
|
||||
<Banner isOpen={!!peerError} onRequestClose={() => setPeerError(null)}>
|
||||
<Box p={1}>
|
||||
<Text as="p" variant="body2">
|
||||
{peerError} See <Link href="#/faq">FAQ</Link> for more information.
|
||||
{peerError} See <Link to="/faq">FAQ</Link> for more information.
|
||||
</Text>
|
||||
</Box>
|
||||
</Banner>
|
||||
|
72
yarn.lock
72
yarn.lock
@ -2424,7 +2424,7 @@ async-limiter@~1.0.0:
|
||||
resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd"
|
||||
integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==
|
||||
|
||||
async@^2.6.1, async@^2.6.2:
|
||||
async@^2.6.2:
|
||||
version "2.6.3"
|
||||
resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff"
|
||||
integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==
|
||||
@ -3322,7 +3322,7 @@ combined-stream@^1.0.6, combined-stream@~1.0.6:
|
||||
dependencies:
|
||||
delayed-stream "~1.0.0"
|
||||
|
||||
commander@^2.11.0, commander@^2.18.0, commander@^2.20.0:
|
||||
commander@^2.11.0, commander@^2.20.0:
|
||||
version "2.20.3"
|
||||
resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
|
||||
integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
|
||||
@ -4202,11 +4202,6 @@ elliptic@^6.0.0:
|
||||
minimalistic-assert "^1.0.0"
|
||||
minimalistic-crypto-utils "^1.0.0"
|
||||
|
||||
email-addresses@^3.0.1:
|
||||
version "3.1.0"
|
||||
resolved "https://registry.yarnpkg.com/email-addresses/-/email-addresses-3.1.0.tgz#cabf7e085cbdb63008a70319a74e6136188812fb"
|
||||
integrity sha512-k0/r7GrWVL32kZlGwfPNgB2Y/mMXVTq/decgLczm/j34whdaspNrZO8CnXPf1laaHxI6ptUlsnAxN+UAPw+fzg==
|
||||
|
||||
emoji-regex@^7.0.1, emoji-regex@^7.0.2:
|
||||
version "7.0.3"
|
||||
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156"
|
||||
@ -4836,28 +4831,6 @@ file-uri-to-path@1.0.0:
|
||||
resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd"
|
||||
integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==
|
||||
|
||||
filename-reserved-regex@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/filename-reserved-regex/-/filename-reserved-regex-1.0.0.tgz#e61cf805f0de1c984567d0386dc5df50ee5af7e4"
|
||||
integrity sha1-5hz4BfDeHJhFZ9A4bcXfUO5a9+Q=
|
||||
|
||||
filenamify-url@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/filenamify-url/-/filenamify-url-1.0.0.tgz#b32bd81319ef5863b73078bed50f46a4f7975f50"
|
||||
integrity sha1-syvYExnvWGO3MHi+1Q9GpPeXX1A=
|
||||
dependencies:
|
||||
filenamify "^1.0.0"
|
||||
humanize-url "^1.0.0"
|
||||
|
||||
filenamify@^1.0.0:
|
||||
version "1.2.1"
|
||||
resolved "https://registry.yarnpkg.com/filenamify/-/filenamify-1.2.1.tgz#a9f2ffd11c503bed300015029272378f1f1365a5"
|
||||
integrity sha1-qfL/0RxQO+0wABUCknI3jx8TZaU=
|
||||
dependencies:
|
||||
filename-reserved-regex "^1.0.0"
|
||||
strip-outer "^1.0.0"
|
||||
trim-repeated "^1.0.0"
|
||||
|
||||
filesize@6.0.1:
|
||||
version "6.0.1"
|
||||
resolved "https://registry.yarnpkg.com/filesize/-/filesize-6.0.1.tgz#f850b509909c7c86f7e450ea19006c31c2ed3d2f"
|
||||
@ -5175,18 +5148,6 @@ getpass@^0.1.1:
|
||||
dependencies:
|
||||
assert-plus "^1.0.0"
|
||||
|
||||
gh-pages@^2.2.0:
|
||||
version "2.2.0"
|
||||
resolved "https://registry.yarnpkg.com/gh-pages/-/gh-pages-2.2.0.tgz#74ebeaca8d2b9a11279dcbd4a39ddfff3e6caa24"
|
||||
integrity sha512-c+yPkNOPMFGNisYg9r4qvsMIjVYikJv7ImFOhPIVPt0+AcRUamZ7zkGRLHz7FKB0xrlZ+ddSOJsZv9XAFVXLmA==
|
||||
dependencies:
|
||||
async "^2.6.1"
|
||||
commander "^2.18.0"
|
||||
email-addresses "^3.0.1"
|
||||
filenamify-url "^1.0.0"
|
||||
fs-extra "^8.1.0"
|
||||
globby "^6.1.0"
|
||||
|
||||
glob-parent@^3.1.0:
|
||||
version "3.1.0"
|
||||
resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae"
|
||||
@ -5602,14 +5563,6 @@ https-browserify@^1.0.0:
|
||||
resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73"
|
||||
integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=
|
||||
|
||||
humanize-url@^1.0.0:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/humanize-url/-/humanize-url-1.0.1.tgz#f4ab99e0d288174ca4e1e50407c55fbae464efff"
|
||||
integrity sha1-9KuZ4NKIF0yk4eUEB8VfuuRk7/8=
|
||||
dependencies:
|
||||
normalize-url "^1.0.0"
|
||||
strip-url-auth "^1.0.0"
|
||||
|
||||
iconv-lite@0.4.24, iconv-lite@^0.4.24:
|
||||
version "0.4.24"
|
||||
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
|
||||
@ -7496,7 +7449,7 @@ normalize-range@^0.1.2:
|
||||
resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942"
|
||||
integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=
|
||||
|
||||
normalize-url@1.9.1, normalize-url@^1.0.0:
|
||||
normalize-url@1.9.1:
|
||||
version "1.9.1"
|
||||
resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c"
|
||||
integrity sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=
|
||||
@ -10436,18 +10389,6 @@ strip-json-comments@^3.0.1:
|
||||
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.0.1.tgz#85713975a91fb87bf1b305cca77395e40d2a64a7"
|
||||
integrity sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==
|
||||
|
||||
strip-outer@^1.0.0:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/strip-outer/-/strip-outer-1.0.1.tgz#b2fd2abf6604b9d1e6013057195df836b8a9d631"
|
||||
integrity sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==
|
||||
dependencies:
|
||||
escape-string-regexp "^1.0.2"
|
||||
|
||||
strip-url-auth@^1.0.0:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/strip-url-auth/-/strip-url-auth-1.0.1.tgz#22b0fa3a41385b33be3f331551bbb837fa0cd7ae"
|
||||
integrity sha1-IrD6OkE4WzO+PzMVUbu4N/oM164=
|
||||
|
||||
style-loader@0.23.1:
|
||||
version "0.23.1"
|
||||
resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.23.1.tgz#cb9154606f3e771ab6c4ab637026a1049174d925"
|
||||
@ -10744,13 +10685,6 @@ tr46@^1.0.1:
|
||||
dependencies:
|
||||
punycode "^2.1.0"
|
||||
|
||||
trim-repeated@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/trim-repeated/-/trim-repeated-1.0.0.tgz#e3646a2ea4e891312bf7eace6cfb05380bc01c21"
|
||||
integrity sha1-42RqLqTokTEr9+rObPsFOAvAHCE=
|
||||
dependencies:
|
||||
escape-string-regexp "^1.0.2"
|
||||
|
||||
ts-pnp@1.1.5, ts-pnp@^1.1.2:
|
||||
version "1.1.5"
|
||||
resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.1.5.tgz#840e0739c89fce5f3abd9037bb091dbff16d9dec"
|
||||
|
Loading…
Reference in New Issue
Block a user