-
)
}
+function CreateRoom({loc}) {
+ var { register, control, reset, handleSubmit} = useForm()
+
+ function createRoom(data) {
+ reset()
+ var path = String(loc.latitude.toFixed(2)).replace(".","")+"/"+String(loc.longitude.toFixed(2)).replace(".","")
+ var timestamp = new Date().getTime()
+ var payload = {
+ name: data.name,
+ description: data.description,
+ timestamp: timestamp,
+ latitude: loc.latitude,
+ longitude: loc.longitude,
+ path: path
+ }
+ set(ref(database,`/rooms/${path}/${data.name}-${timestamp}`), payload)
+ }
+
+ return (
+
+ )
+}
+
function Home() {
var [tab, setTab] = useState("nearby")
var [mainTab, setMainTab] = useState("home")
var [chatRoom, setChatRoom] = useState("Dev")
- const [myrooms, setRoomData] = useState(null)
+ const [myRooms, setRoomData] = useState(null)
const [isRoomLoading, setRoomLoading] = useState(true)
useEffect(() => {
fetch('/api/user').then((res) => res.json())
@@ -175,7 +197,7 @@ function Home() {
var rooms = snapshot.val()
var roomArr = []
for (var room in rooms) {
- roomArr.push(
{setChatRoom(rooms[room].name);setMainTab("chat")}}/>)
+ roomArr.push( {setChatRoom(rooms[room].path+"/"+rooms[room].name+"-"+rooms[room].timestamp);setMainTab("chat")}}/>)
}
setRoomData(roomArr)
setRoomLoading(false)
@@ -183,6 +205,36 @@ function Home() {
})
}, [])
+
+ const [location, setLocation] = useState(null);
+ const [loadingLoc, setLoadingLoc] = useState(true)
+ const [nearby, setNearby] = useState(null);
+ const [loadingNearby, setLoadingNearby] = useState(true);
+ useEffect(() => {
+ if('geolocation' in navigator) {
+ // Retrieve latitude & longitude coordinates from `navigator.geolocation` Web API
+ navigator.geolocation.getCurrentPosition(({ coords }) => {
+ setLocation(coords)
+ setLoadingLoc(false)
+ var nearbyArr = []
+ var path = String(coords.latitude.toFixed(2)).replace(".","")+"/"+String(coords.longitude.toFixed(2)).replace(".","")
+ get(ref(database, `/rooms/${path}`)).then((snapshot) => {
+ if (snapshot.exists()) {
+ var data = snapshot.val()
+ for (var room in data) {
+ nearbyArr.push( {setChatRoom(data[room].path+"/"+data[room].name+"-"+data[room].timestamp);setMainTab("chat")}}/>)
+ }
+ setLoadingNearby(false)
+ setNearby(nearbyArr)
+ } else {
+ setLoadingNearby(false)
+ }
+ })
+ })
+ }
+ }, []);
+
+
return (
@@ -196,7 +248,8 @@ function Home() {
- {mainTab == "home" && }
+ {(mainTab == "home" && !loadingLoc) && }
+ {(mainTab == "home" && loadingLoc) && }
{mainTab == "chat" && }
@@ -210,19 +263,21 @@ function Home() {