diff options
| author | Pinapelz <yukais@pinapelz.com> | 2024-08-23 15:06:37 -0700 |
|---|---|---|
| committer | Pinapelz <yukais@pinapelz.com> | 2024-08-23 15:06:37 -0700 |
| commit | e970aa7a26fecfa38041bb1cfa59a1d5f40a0194 (patch) | |
| tree | 5b226c90eb2215f1ab95ed72648069a60b40f745 | |
| parent | 471bd1f064766c33ee62b4789ca097da4d57978f (diff) | |
initial groundwork for interactivity via mdx
| -rw-r--r-- | src/components/AnotherComponent.tsx | 28 | ||||
| -rw-r--r-- | src/components/FFXIVWorldSelector.tsx | 59 | ||||
| -rw-r--r-- | src/content/blog/ffxiv-gil-making.mdx | 19 | ||||
| -rw-r--r-- | src/styles/ffxiv-gil-making.css | 0 |
4 files changed, 106 insertions, 0 deletions
diff --git a/src/components/AnotherComponent.tsx b/src/components/AnotherComponent.tsx new file mode 100644 index 0000000..f74e924 --- /dev/null +++ b/src/components/AnotherComponent.tsx @@ -0,0 +1,28 @@ +import React, { useState, useEffect } from 'react'; + +const AnotherComponent: React.FC = () => { + const [selectedWorld, setSelectedWorld] = useState<string | null>(null); + + useEffect(() => { + // Load selected world from localStorage + const savedWorld = localStorage.getItem('selectedWorld'); + if (savedWorld) { + setSelectedWorld(savedWorld); + } + }, []); + + return ( + <div> + <p>Selected World: {selectedWorld}</p> + <button onClick={() => { + const newWorld = 'New World'; + setSelectedWorld(newWorld); + localStorage.setItem('selectedWorld', newWorld); // Save to localStorage + }}> + Change World + </button> + </div> + ); +}; + +export default AnotherComponent;
\ No newline at end of file diff --git a/src/components/FFXIVWorldSelector.tsx b/src/components/FFXIVWorldSelector.tsx new file mode 100644 index 0000000..f2dc4cc --- /dev/null +++ b/src/components/FFXIVWorldSelector.tsx @@ -0,0 +1,59 @@ +import React, { useState, useEffect } from 'react'; + +interface World { + id: number; + name: string; +} + +const FFXIVWorldSelector: React.FC = () => { + const [worlds, setWorlds] = useState<World[]>([]); + const [selectedWorld, setSelectedWorld] = useState<string | null>(null); + + useEffect(() => { + const fetchWorlds = async () => { + try { + const response = await fetch('https://universalis.app/api/v2/worlds'); + const data = await response.json(); + setWorlds(data); + } catch (error) { + console.error('Error fetching worlds:', error); + } + }; + + fetchWorlds(); + + // Load selected world from localStorage + const savedWorld = localStorage.getItem('selectedWorld'); + if (savedWorld) { + setSelectedWorld(savedWorld); + } + }, []); + + const handleWorldChange = (event: React.ChangeEvent<HTMLSelectElement>) => { + const selectedWorld = event.target.value; + setSelectedWorld(selectedWorld); + localStorage.setItem('selectedWorld', selectedWorld); // Save to localStorage + }; + + const handleApplyClick = () => { + window.location.reload(); // Refresh the page + }; + + return ( + <div> + <label htmlFor="world-select">Select a world: </label> + <select id="world-select" onChange={handleWorldChange} value={selectedWorld || ''}> + <option value="">--Please choose an option--</option> + {worlds.map((world) => ( + <option key={world.id} value={world.name}> + {world.name} + </option> + ))} + </select> + {selectedWorld && <p>Selected World: {selectedWorld}</p>} + <button onClick={handleApplyClick}>Apply</button> + </div> + ); +}; + +export default FFXIVWorldSelector;
\ No newline at end of file diff --git a/src/content/blog/ffxiv-gil-making.mdx b/src/content/blog/ffxiv-gil-making.mdx new file mode 100644 index 0000000..002ab8c --- /dev/null +++ b/src/content/blog/ffxiv-gil-making.mdx @@ -0,0 +1,19 @@ +--- +title: "FFXIV - Actually Making Gil Without Crafting" +description: "An actually OK guide at how to become a gillionaire without crafting (not just running roulettes and maps)" +pubDate: "2024-08-23" +--- +import '../../styles/ffxiv-gil-making.css' +import FFXIVWorldSelector from '../../components/FFXIVWorldSelector'; +import AnotherComponent from '../../components/AnotherComponent'; + +*Enter the world you play on below to get crowdsourced marketboard prices* +<FFXIVWorldSelector client:load /> + + + +I've seen a lot of these "making gil without crafting" or "making gil with combat job" guides during my time with the game. +A lot of these videos and guides are fine, but in my opinion they neglect a lot of the late game and niche options that are available to players. + +This post will attempt to be a somewhat comprehensive guide to making gil without having to level any crafting jobs (cause I get it, crafting is not for everyone). +<AnotherComponent client:load/>
\ No newline at end of file diff --git a/src/styles/ffxiv-gil-making.css b/src/styles/ffxiv-gil-making.css new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/src/styles/ffxiv-gil-making.css |
