Skip to content

Commit

Permalink
Merge pull request #26 from dgmstuart/balboa-emoji
Browse files Browse the repository at this point in the history
Add a Balboa card
  • Loading branch information
dgmstuart authored Apr 25, 2024
2 parents 47a6fee + ae003ce commit bb88799
Show file tree
Hide file tree
Showing 3 changed files with 180 additions and 15 deletions.
33 changes: 19 additions & 14 deletions src/components/WordList.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -29,12 +29,13 @@ const WordListGroup: React.FC<WordListGroupData> = ({
<p className="WordListGroup-description">{description}</p>
)}
<ul>
{words.map(({ word, url, description }) => {
{words.map(({ word, url, emoji, description }) => {
const normalised = normaliseWord(word);
return (
<li key={normalised}>
<DescribableWord
Word={LinkableWord({ word: normalised, url: url })}
emoji={emoji}
description={description}
/>
</li>
Expand All @@ -45,19 +46,23 @@ const WordListGroup: React.FC<WordListGroupData> = ({
);
};

const DescribableWord: React.FC<{ Word: ReactNode; description?: string }> = ({
Word,
description,
}) => {
if (description) {
return (
<React.Fragment>
{Word} - <span className="WordList-description">{description}</span>
</React.Fragment>
);
} else {
return <React.Fragment>{Word}</React.Fragment>;
}
const DescribableWord: React.FC<{
Word: ReactNode;
emoji?: string;
description?: string;
}> = ({ Word, emoji, description }) => {
return (
<React.Fragment>
{Word}
{emoji && <> {emoji} </>}
{description && (
<>
<> - </>
<span className="WordList-description">{description}</span>
</>
)}
</React.Fragment>
);
};

const LinkableWord: React.FC<{ word: string; url?: string }> = ({
Expand Down
155 changes: 155 additions & 0 deletions src/data/balboa.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,155 @@
{
"name": "Balboa",
"url": "https://dgmstuart.github.io/bingo-frontend/balboa",
"wordList": [
{
"title": "Moves",
"words": [
{ "word": "Double spin" },
{ "word": "Triple spin" },
{ "word": "Leader spin (at least 360º)" },
{ "word": "Texas Tommy" },
{ "word": "Collegiate shag" },
{ "word": "Hangman" },
{ "word": "Both dancers jump" },
{
"word": "Follower crossovers, leader doesn't cross",
"description": "Surely there’s a proper name for this?"
}
]
},
{
"title": "Travelling moves",
"words": [
{ "word": "Drags" },
{ "word": "Travelling crossovers" },
{ "word": "Grapevine" },
{
"word": "Heel slide",
"description": "(Usually the leader) slides in a line or a circle with the heel of their front foot"
},
{
"word": "A big slide",
"description": "ie. a slide which actually travels across the floor"
}
]
},
{
"title": "Solo dance steps",
"description": "Steps from solo jazz, done with (or without!) a partner",
"words": [
{ "word": "Eagle slide", "emoji": "🦅" },
{ "word": "Mess around" },
{ "word": "Pecking", "emoji": "🐓" },
{ "word": "A double kick" },
{
"word": "A really big kick",
"description": "we're talking REALLY big"
}
]
},
{
"title": "Poses",
"words": [
{ "word": "Hold a pose with a finger in the air", "emoji": "🕺" },
{
"word": "Stop step",
"emoji": "🛑",
"description": "(not sure if this is the right name?) both leader and follower slide feet outwards and go split weight"
},
{ "word": "(That thing where you both open out)" },
{ "word": "Freeze for at least 4 counts", "emoji": "🥶" },
{ "word": "Pointing at the audience/ camera", "emoji": "👉" },
{ "word": "Follower does footwork, leader stays still" }
]
},
{
"title": "Positions",
"words": [
{ "word": "Somebody is lifted fully off the ground" },
{ "word": "Somebody is upside down!", "emoji": "🙃" },
{ "word": "Somebody’s hand touches the ground" },
{ "word": "Sitting or kneeling on the floor", "emoji": "🧘" }
]
},
{
"title": "Airsteps and flash",
"words": [
{
"word": "Scorpion/ Flutter kicks",
"emoji": "🦂",
"description": "(these probably aren't the proper names?) drags position, follower's legs kick up and out behind them."
},
{
"word": "Carousel (flash step)",
"emoji": "🎠",
"description": "Betty and Hal Takier, as seen in Maharaja: the follower clamps leader's thigh between their thighs so that they're fully off the ground. Spinning round often occurs.",
"url": "https://youtu.be/ehVZktW0BK4?si=0EFbgU_5502dHpC8&t=114"
},
{
"word": "Betty drop (flash step)",
"description": "After Betty Takier: follower slides down and relies on leader to hold them up",
"url": "https://youtu.be/ebw84iWPDz8?si=uyN5iIpfq9aWRp5y&t=243"
},
{
"word": "Hal drop (flash step)",
"description": "After Hal Takier: leader slides down and relies on follower to hold them up",
"url": "https://youtu.be/ebw84iWPDz8?si=HXx_8QuXZ-WXWpNV&t=248"
},
{
"word": "Bart leg (flash step)",
"emoji": "🦵",
"description": "After Bart Bartolo: leader suddenly lunges down low on one leg and then sweeps back up with the other leg",
"url": "https://youtu.be/bvlMrEthxxE?si=Dzz1eFoJb98c14jj&t=51"
},
{
"word": "Doll drop (flash step)",
"description": "(maybe not the right name?) leader supports the follower with their arms under the follower's armpits, while the follower (facing away) drops down"
},
{
"word": "Candlestick (flash step)",
"url": "https://www.facebook.com/robertwhiteiii/posts/pfbid0Pu1ht1kXB4gtsydYocRFXkQR1WuxsQy38EcQTfVfWX4aEw4wMjrFErgzTpzAE4B3l",
"description": "Leader lifts the follower upside down above their head"
}
]
},
{
"title": "Connections",
"words": [
{ "word": "Linked arms", "emoji": "🔗" },
{ "word": "Elbow catch", "emoji": "💪" },
{ "word": "Double hand hold" },
{ "word": "Disconnect and dance solo" }
]
},
{
"title": "Who is that?",
"words": [
{ "word": "A Swede", "emoji": "🇸🇪" },
{ "word": "Follower taller than leader" },
{ "word": "Somebody you have personally taken class from" }
]
},
{
"title": "Fashion Police",
"words": [
{ "word": "A hair flower", "emoji": "🌺" },
{
"word": "Braces (susp&shy;enders)",
"description": "straps which go over the shoulders and hold trousers up"
},
{ "word": "A hat", "emoji": "👒" },
{ "word": "A polo shirt (piketröja)", "emoji": "👕" },
{ "word": "A knitted vest" },
{ "word": "Metallic shoes " },
{ "word": "Loafers", "emoji": "👞" },
{ "word": "Patterned socks", "emoji": "🧦" },
{
"word": "Injury support",
"description": "eg. a knee or wrist brace, or physio tape"
},
{ "word": "Both partners wearing the same colour (not black or white)" }
]
}
]
}
7 changes: 6 additions & 1 deletion src/data/config.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,9 @@ export type WordListGroupData = {
description?: string;
words: WordData[];
};
export type WordData = { word: string; url?: string; description?: string };
export type WordData = {
word: string;
url?: string;
emoji?: string;
description?: string;
};

0 comments on commit bb88799

Please sign in to comment.