forked from b00tc4mp/isdi-bootcamp-202409
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
45 changed files
with
275 additions
and
48 deletions.
There are no files selected for viewing
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
const posts = [ | ||
{ | ||
image: 'https://fantasiapersonajes.es/blog/wp-content/uploads/2023/11/El-Grinch-de-Navidad.jpg', | ||
text: 'here i am', | ||
username: 'grinch', | ||
date: new Date | ||
}, | ||
{ | ||
image: 'https://static.abc.es/media/play/2018/11/30/[email protected]', | ||
text: 'here i am', | ||
username: 'grinch', | ||
date: new Date | ||
} | ||
] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
const users = [ | ||
{ name: 'Grinch', email: '[email protected]', username: 'grinch', password: '123123123' }, | ||
{ name: 'Grinch', email: '[email protected]', username: 'grinch', password: '123123123' } | ||
] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,53 @@ | ||
<!DOCTYPE html> | ||
<html lang="en"> | ||
|
||
<head> | ||
<meta charset="UTF-8"> | ||
<meta name="viewport" content="width=device-width, initial-scale=1.0"> | ||
<title>Unsocial</title> | ||
|
||
<link rel="shortcut icon" href="https://b00tc4mp.com/favicon.ico" type="image/x-icon"> | ||
|
||
<link rel="stylesheet" href="styles.css"> | ||
</head> | ||
|
||
<body> | ||
|
||
<script src="data/users.js"></script> | ||
<script src="data/posts.js"></script> | ||
|
||
<script src="logic/authenticateUser.js"></script> | ||
<script src="logic/createPost.js"></script> | ||
<script src="logic/getPosts.js"></script> | ||
<script src="logic/registerUser.js"></script> | ||
|
||
<script src="compo/Compo.js"></script> | ||
<script src="compo/Button.js"></script> | ||
<script src="compo/Code.js"></script> | ||
<script src="compo/Form.js"></script> | ||
<script src="compo/Heading.js"></script> | ||
<script src="compo/Image.js"></script> | ||
<script src="compo/Input.js"></script> | ||
<script src="compo/Label.js"></script> | ||
<script src="compo/Link.js"></script> | ||
<script src="compo/ListItem.js"></script> | ||
<script src="compo/Paragraph.js"></script> | ||
<script src="compo/PasswordInput.js"></script> | ||
<script src="compo/Preformatted.js"></script> | ||
<script src="compo/Snippet.js"></script> | ||
<script src="compo/Span.js"></script> | ||
<script src="compo/Time.js"></script> | ||
<script src="compo/UnorderedList.js"></script> | ||
|
||
|
||
<script src="view/CreatePost.js"></script> | ||
<script src="view/Home.js"></script> | ||
<script src="view/Login.js"></script> | ||
<script src="view/PostItem.js"></script> | ||
<script src="view/PostList.js"></script> | ||
<script src="view/Register.js"></script> | ||
|
||
<script src="main.js"></script> | ||
</body> | ||
|
||
</html> |
14 changes: 14 additions & 0 deletions
14
staff/victoria-kolomytseva/unsocial.10/logic/authenticateUser.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
const authenticateUser = (username, password) => { | ||
if (username.length < 4 || username.length > 12) | ||
throw new Error('invalid username') | ||
|
||
if (password.length < 8) | ||
throw new Error('invalid password') | ||
|
||
const user = users.find(user => user.username === username && user.password === password) | ||
|
||
if (user === undefined) | ||
throw new Error('wrong credentials') | ||
|
||
return user | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
const getPosts = () => posts |
26 changes: 26 additions & 0 deletions
26
staff/victoria-kolomytseva/unsocial.10/logic/registerUser.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
const registerUser = (name, email, username, password, passwordRepeat) => { | ||
if (name.length < 2) | ||
throw new Error('invalid name') | ||
|
||
if (!/^(([^<>()[\]\.,;:\s@\"]+(\.[^<>()[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\s@\"]+\.)+[^<>()[\]\.,;:\s@\"]{2,})$/i.test(email)) | ||
throw new Error('invalid e-mail') | ||
|
||
if (username.length < 4 || username.length > 12) | ||
throw new Error('invalid username') | ||
|
||
if (password.length < 8) | ||
throw new Error('invalid password') | ||
|
||
if (password !== passwordRepeat) | ||
throw new Error('passwords do not match') | ||
|
||
let user = users.find(user => user.username === username || user.email === email) | ||
|
||
|
||
if (user !== undefined) | ||
throw new Error('user already exists') | ||
|
||
user = { name: name, email: email, username: username, password: password } | ||
|
||
users.push(user) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
let loggedInUser = null | ||
|
||
const page = new Compo(document.querySelector('body')) | ||
console.log(page) | ||
|
||
|
||
const title = new Heading('Unsocial', 1) | ||
page.add(title) | ||
|
||
const login = new Login() | ||
page.add(login) | ||
|
||
// loggedInUser = users[0] | ||
let home | ||
// home = new Home() | ||
// page.add(home) |
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,14 +1,14 @@ | ||
const posts = [ | ||
{ | ||
image: 'https://fantasiapersonajes.es/blog/wp-content/uploads/2023/11/El-Grinch-de-Navidad.jpg', | ||
text: 'here i am', | ||
username: 'grinch', | ||
image: 'https://i.pinimg.com/originals/8c/60/1a/8c601a25311a1a5098896f751a784b54.jpg', | ||
text: 'here we are', | ||
username: 'peterpan', | ||
date: new Date | ||
}, | ||
{ | ||
image: 'https://static.abc.es/media/play/2018/11/30/grinch-kBPE--1248x698@abc.jpg', | ||
image: 'https://pm1.aminoapps.com/8360/ad07e2d2cdf6e1733328d6e7b7848b87db38a2bbr1-1536-2048v2_hq.jpg', | ||
text: 'here i am', | ||
username: 'grinch', | ||
username: 'wendydarling', | ||
date: new Date | ||
} | ||
] | ||
] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
const users = [ | ||
{ name: 'Grinch', email: '[email protected]', username: 'grinch', password: '123123123' }, | ||
{ name: 'Grinch', email: 'grincg@darling.com', username: 'grinch', password: '123123123' } | ||
{ name: 'Peter Pan', email: '[email protected]', username: 'peterpan', password: '123123123' }, | ||
{ name: 'Wendy Darling', email: 'wendy@darling.com', username: 'wendydarling', password: '123123123' } | ||
] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
const createPost = (username, image, text) => { | ||
if (username.length < 4 || username.length > 12) | ||
throw new Error('invalid username') | ||
|
||
// TODO input validation (and throw error) | ||
|
||
const post = { | ||
image: image, | ||
text: text, | ||
username: username, | ||
date: new Date | ||
} | ||
|
||
postMessage.push(post) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1 @@ | ||
const getPosts = () => posts | ||
const getPosts = () => posts |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,16 +1,95 @@ | ||
let loggedInUser = null | ||
|
||
const page = new Compo(document.querySelector('body')) | ||
console.log(page) | ||
const rootElement = document.getElementById('root') | ||
const root = ReactDOM.createRoot(rootElement) | ||
|
||
const title = React.createElement('h1', { style: { backgroundColor: 'red' } }, 'Hola, React') | ||
|
||
const title = new Heading('Unsocial', 1) | ||
page.add(title) | ||
const button = React.createElement('button', { type: 'button', onClick: () => alert('Clicked') }, 'Click me!') | ||
|
||
const red = React.createElement('li', { style: { backgroundColor: 'red' } }, 'RED') | ||
const green = React.createElement('li', { style: { backgroundColor: 'green' } }, 'GREEN') | ||
const blue = React.createElement('li', { style: { backgroundColor: 'blue' } }, 'BLUE') | ||
const list = React.createElement('ul', { style: { border: '1px solid black' } }, [red, green, blue]) | ||
|
||
const input = React.createElement('Input', { type: 'text', id: 'whatever', className: 'pepito', placeholder: 'Whatever!?' }) | ||
const submit = React.createElement('button', { type: 'submit' }, 'Do') | ||
const form = React.createElement('form', { | ||
onSubmit: event => { | ||
event.preventDefault() | ||
|
||
console.log(event.target.whatever.value) | ||
} | ||
}, [input, submit]) | ||
|
||
const link = React.createElement('a', { | ||
href: '', | ||
onClick: event => { | ||
event.preventDefault() | ||
|
||
console.log('link clicked') | ||
}, | ||
style: { | ||
color: 'magenta' | ||
} | ||
}, 'click me') | ||
|
||
function ReactiveEmoji(props) { | ||
const content = React.createElement('span', { | ||
onClick: () => alert(`${props.emoji} Ouch!`), | ||
style: { | ||
cursor: 'pointer' | ||
|
||
} | ||
|
||
}, | ||
props.emoji) | ||
const box = React.createElement('div', { | ||
style: { | ||
border: '2px solid black', | ||
display: 'inline-block', | ||
padding: '3px' | ||
} | ||
}, | ||
content) | ||
|
||
return box | ||
} | ||
//class Car extends React.Component { } | ||
// const Component = React.Component | ||
const { Component } = React | ||
class Car extends Component { | ||
constructor(props) { | ||
super(props) | ||
} | ||
|
||
render() { | ||
const content = React.createElement('span', { style: { padding: '2px' } }, this.props.car) | ||
|
||
return content | ||
|
||
} | ||
|
||
} | ||
|
||
const blueCar = new Car({ car: '🚙' }) | ||
const redCar = new Car({ car: '🚗' }) | ||
const yellowCar = new Car({ car: '🚕' }) | ||
|
||
root.render([ | ||
title, | ||
button, | ||
list, | ||
blueCar.render(), | ||
redCar.render(), | ||
yellowCar.render(), | ||
form, | ||
link, | ||
ReactiveEmoji({ emoji: '😊' }), | ||
ReactiveEmoji({ emoji: '❤️' }), | ||
|
||
|
||
|
||
]) | ||
|
||
const login = new Login() | ||
page.add(login) | ||
|
||
// loggedInUser = users[0] | ||
let home | ||
// home = new Home() | ||
// page.add(home) |
Oops, something went wrong.