From 45d9e4bcb768d533b35bf9739980cd9626a0ea1b Mon Sep 17 00:00:00 2001 From: Yue Fung Lee Date: Thu, 30 Nov 2023 18:25:07 -0500 Subject: [PATCH] Added Creating Random Users --- frontend/src/index.sass | 42 +++++++++++++ frontend/src/pages/Character.tsx | 2 +- frontend/src/pages/CollabLearning.tsx | 87 +++++++++++++++++++++++++++ 3 files changed, 130 insertions(+), 1 deletion(-) diff --git a/frontend/src/index.sass b/frontend/src/index.sass index 65b42ec..447f76e 100644 --- a/frontend/src/index.sass +++ b/frontend/src/index.sass @@ -1,6 +1,7 @@ @tailwind base @tailwind components @tailwind utilities +@yaireo/tagify/src/tagify.scss $c-default-text: #222 $c-default-icon: #888 @@ -113,6 +114,11 @@ h2 font-size: 1.5em margin-bottom: 0.5em text-align: center + +.subtext + text-align: center + color: rgb(75, 85, 99) + opacity: 0.8 .v-layout display: flex @@ -217,3 +223,39 @@ h2 align-self: flex-start background-color: $c-green border-radius: 0 20px 20px 20px +<<<<<<< HEAD +======= + +.tags + display: flex + flex-wrap: wrap + border: solid $c-white-shadow + padding: 10px + border-radius: 20px + height: 200px + overflow-y: scroll + align-content: flex-start + gap: 10px 5px + margin-top: 3px + +.tag + background-color: $c-blue + color: white + border-radius: 20px + padding: 5px 10px + margin: 0 + display: flex + align-items: center + justify-content: space-between + height: 30px + +.delete-tag + margin-left: 6px + font-weight: 600 + width: 20px + height: 20px + color: white + display: flex + align-items: center + justify-content: center +>>>>>>> 199c0b0 (Added Creating Random Users) diff --git a/frontend/src/pages/Character.tsx b/frontend/src/pages/Character.tsx index 216c6cd..bef6ccd 100644 --- a/frontend/src/pages/Character.tsx +++ b/frontend/src/pages/Character.tsx @@ -64,7 +64,7 @@ export default function Character() { {}}/>
{messages.length === 0 ? ( -

Please record a message to start the conversation.

+

Please record a message to start the conversation.

) : ( messages.map((message, index) => (
diff --git a/frontend/src/pages/CollabLearning.tsx b/frontend/src/pages/CollabLearning.tsx index ab77287..c61d3aa 100644 --- a/frontend/src/pages/CollabLearning.tsx +++ b/frontend/src/pages/CollabLearning.tsx @@ -1,11 +1,98 @@ import NavBar from "../components/NavBar" +import { useState } from 'react'; export default function CollabLearning() { + const target_interests = [ + "gaming", "cooking", "sci-fi", "sports", "music", "programming", "first-person shooters", "painting", "baking", "astronomy", "archery" + ] + + const target_names = [ + "John", "Mary", "Bob", "Alice", "Jane", "Frank", "Sally", "Jack", "Jill", "Joe", "Sue" + ] + + interface User { + name: string; + interests: string[]; + } + + const [tags, setTags] = useState([]); + const [otherUsers, setOtherUsers] = useState([]); + const [newTag, setNewTag] = useState("") + const [errorMessage, setErrorMessage] = useState("") + + const handleDelete = (tagToDelete: any) => { + setTags(tags.filter(tag => tag !== tagToDelete)); + } + + const handleAddTag = (event: React.KeyboardEvent) => { + if (event.key === 'Enter') { + event.preventDefault(); + if (newTag && !tags.includes(newTag)) { + setTags([...tags, newTag]); + setNewTag(''); + setErrorMessage(''); + } else if (tags.includes(newTag)) { + setErrorMessage('You already entered this interest'); + } + } + } + + const handleMatchClick = () => { + if (tags.length === 0) { + setErrorMessage('Please enter at least one interest'); + return; + } + + const randomNumber = Math.floor(Math.random() * target_names.length) + 1; + + console.log(randomNumber); + + let tempUsers = Array.from(otherUsers); + + for (let i = 0; i < randomNumber; i++) { + const randomName = target_names[Math.floor(Math.random() * target_names.length)]; + const randomNumberOfInterests = Math.floor(Math.random() * target_interests.length) + 1; + const randomInterests: string[] = []; + for (let j = 0; j < randomNumberOfInterests; j++) { + const randomInterest = target_interests[Math.floor(Math.random() * target_interests.length)]; + if (!randomInterests.includes(randomInterest)) { + randomInterests.push(randomInterest); + } + } + const newUser = { name: randomName, interests: randomInterests }; + tempUsers.push(newUser); + } + + setOtherUsers(tempUsers); + + console.log(tempUsers); + + + } + return (

Collaborative Learning

+

Find people fluent in your taget language to Chat!

+

Help them learn a language you know!

+

Interests

+
+ {tags.length === 0 ? ( +

Enter a new interest below and press "Enter"!

+ ) : ( + tags.map((tag) => ( +
+ {tag} + { e.stopPropagation(); handleDelete(tag); }}> X +
+ )) + )} +
+ {errorMessage &&

{errorMessage}

} + setNewTag(e.target.value)} onKeyDown={handleAddTag} placeholder="Enter your interest here!" /> +