Skip to content

Instantly share code, notes, and snippets.

View Yamo93's full-sized avatar

Yamo Gebrewold Yamo93

  • IKEA
  • Malmö, Sweden
View GitHub Profile
function Parent () {
const [value, setValue] = useState();
function save () {
server.save(value); // save value on the server
}
return <Child type="checkbox" value={value} setValue={setValue} />;
}
function Parent () {
function save () {
// save the value of the child
}
return (
<>
<Child type="checkbox" />
<button onClick={save}>Save</button>
</>
function Child ({ type }) {
const [value, setValue] = useState();
let renderedItem;
switch (type) {
case 'text':
renderedItem = <Input type="text" value={value} onChange={(e) => setValue(e.target.value)} />;
break;
case 'checkbox':
renderedItem = <Input type="checkbox" value={value} onChange={(e) => setValue(e.target.checked)} />;
function Parent () {
function save (text) {
server.save(text); // save text on server
}
return <Window onSave={(text) => save(text)}} />;
}
function Window ({ onSave }) {
const [text, setText] = useState('');
@Yamo93
Yamo93 / window.jsx
Last active July 18, 2022 15:57
Window component
function Window () {
const [text, setText] = useState('');
return <div>
<label>Text:</label>
<input type="text" value={text} onChange={(e) => setText(e.target.value)} />
<button>Save</button>
</div>;
}
@Yamo93
Yamo93 / closures.js
Created July 6, 2022 18:24
A chained function with closures.
function fn (str) {
let appended = str;
const stringBuilder = {
fn (newStr) {
if (typeof newStr === 'string') {
appended += ' ';
appended += newStr;
return stringBuilder;
}
return appended
@Yamo93
Yamo93 / answer_generator.js
Last active June 23, 2022 21:58
A class which can generate all possible combinations for a question with x true/false statements. For example, a question with 5 true/false statements can have 2^5 (32) possible combinations.
class AnswerGenerator {
combinations = [];
combinationNumber = -1;
generateCombinations(numOfStatements = 5) {
const combinations = [];
const numOfPossibleCombinations = 2 ** numOfStatements;
for (let i = 0; i < numOfPossibleCombinations; i++) {
// for every number, convert it to binary
const binary = i.toString(2); // 16 => 10000
import { Grid, DataGenerator } from '../../build/grid.module.js?449264';
import shared from '../_shared/shared.module.js?449264';
const grid = new Grid({
appendTo: 'container',
autoHeight: true,
callOnFunctions: true,
className: '',
columns: [
{
function initializeDatabase(database) {
if (typeof database.init !== 'function') {
throw 'Engine has no init method';
}
database.init();
}
const mySqlEngine = {
type: 'mysql',
function initializeDatabase(database) {
switch (database.type) {
case 'mysql':
database.connectToMySql();
break;
case 'postgres':
database.connectToPostgres();
break;
case 'mongodb':
database.connectToMongoDb();