-
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.
Merge pull request #10 from Hoang-Nguyen-Huy/feat/fetch-api
Feat/fetch api
- Loading branch information
Showing
8 changed files
with
132 additions
and
86 deletions.
There are no files selected for viewing
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,31 @@ | ||
<!DOCTYPE html> | ||
<html> | ||
<head> | ||
<meta charset="utf-8" /> | ||
<title>Single Page Apps for GitHub Pages</title> | ||
<script type="text/javascript"> | ||
var segmentCount = 1; | ||
var l = window.location; | ||
l.replace( | ||
l.protocol + | ||
"//" + | ||
l.hostname + | ||
(l.port ? ":" + l.port : "") + | ||
l.pathname | ||
.split("/") | ||
.slice(0, 1 + segmentCount) | ||
.join("/") + | ||
"/?p=/" + | ||
l.pathname | ||
.slice(1) | ||
.split("/") | ||
.slice(segmentCount) | ||
.join("/") | ||
.replace(/&/g, "~and~") + | ||
(l.search ? "&q=" + l.search.slice(1).replace(/&/g, "~and~") : "") + | ||
l.hash | ||
); | ||
</script> | ||
</head> | ||
<body></body> | ||
</html> |
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,89 +1,31 @@ | ||
<!DOCTYPE html> | ||
<html> | ||
<html lang="en"> | ||
<head> | ||
<meta charset="utf-8"> | ||
<meta name="viewport" content="width=device-width, initial-scale=1"> | ||
<title>Welcome to Firebase Hosting</title> | ||
|
||
<!-- update the version number as needed --> | ||
<script defer src="/__/firebase/11.0.0/firebase-app-compat.js"></script> | ||
<!-- include only the Firebase features as you need --> | ||
<script defer src="/__/firebase/11.0.0/firebase-auth-compat.js"></script> | ||
<script defer src="/__/firebase/11.0.0/firebase-database-compat.js"></script> | ||
<script defer src="/__/firebase/11.0.0/firebase-firestore-compat.js"></script> | ||
<script defer src="/__/firebase/11.0.0/firebase-functions-compat.js"></script> | ||
<script defer src="/__/firebase/11.0.0/firebase-messaging-compat.js"></script> | ||
<script defer src="/__/firebase/11.0.0/firebase-storage-compat.js"></script> | ||
<script defer src="/__/firebase/11.0.0/firebase-analytics-compat.js"></script> | ||
<script defer src="/__/firebase/11.0.0/firebase-remote-config-compat.js"></script> | ||
<script defer src="/__/firebase/11.0.0/firebase-performance-compat.js"></script> | ||
<!-- | ||
initialize the SDK after all desired features are loaded, set useEmulator to false | ||
to avoid connecting the SDK to running emulators. | ||
--> | ||
<script defer src="/__/firebase/init.js?useEmulator=true"></script> | ||
|
||
<style media="screen"> | ||
body { background: #ECEFF1; color: rgba(0,0,0,0.87); font-family: Roboto, Helvetica, Arial, sans-serif; margin: 0; padding: 0; } | ||
#message { background: white; max-width: 360px; margin: 100px auto 16px; padding: 32px 24px; border-radius: 3px; } | ||
#message h2 { color: #ffa100; font-weight: bold; font-size: 16px; margin: 0 0 8px; } | ||
#message h1 { font-size: 22px; font-weight: 300; color: rgba(0,0,0,0.6); margin: 0 0 16px;} | ||
#message p { line-height: 140%; margin: 16px 0 24px; font-size: 14px; } | ||
#message a { display: block; text-align: center; background: #039be5; text-transform: uppercase; text-decoration: none; color: white; padding: 16px; border-radius: 4px; } | ||
#message, #message a { box-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24); } | ||
#load { color: rgba(0,0,0,0.4); text-align: center; font-size: 13px; } | ||
@media (max-width: 600px) { | ||
body, #message { margin-top: 0; background: white; box-shadow: none; } | ||
body { border-top: 16px solid #ffa100; } | ||
} | ||
</style> | ||
</head> | ||
<body> | ||
<div id="message"> | ||
<h2>Welcome</h2> | ||
<h1>Firebase Hosting Setup Complete</h1> | ||
<p>You're seeing this because you've successfully setup Firebase Hosting. Now it's time to go build something extraordinary!</p> | ||
<a target="_blank" href="https://firebase.google.com/docs/hosting/">Open Hosting Documentation</a> | ||
</div> | ||
<p id="load">Firebase SDK Loading…</p> | ||
|
||
<script> | ||
document.addEventListener('DOMContentLoaded', function() { | ||
const loadEl = document.querySelector('#load'); | ||
// // 🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥 | ||
// // The Firebase SDK is initialized and available here! | ||
// | ||
// firebase.auth().onAuthStateChanged(user => { }); | ||
// firebase.database().ref('/path/to/ref').on('value', snapshot => { }); | ||
// firebase.firestore().doc('/foo/bar').get().then(() => { }); | ||
// firebase.functions().httpsCallable('yourFunction')().then(() => { }); | ||
// firebase.messaging().requestPermission().then(() => { }); | ||
// firebase.storage().ref('/path/to/ref').getDownloadURL().then(() => { }); | ||
// firebase.analytics(); // call to activate | ||
// firebase.analytics().logEvent('tutorial_completed'); | ||
// firebase.performance(); // call to activate | ||
// | ||
// // 🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥 | ||
|
||
try { | ||
let app = firebase.app(); | ||
let features = [ | ||
'auth', | ||
'database', | ||
'firestore', | ||
'functions', | ||
'messaging', | ||
'storage', | ||
'analytics', | ||
'remoteConfig', | ||
'performance', | ||
].filter(feature => typeof app[feature] === 'function'); | ||
loadEl.textContent = `Firebase SDK loaded with ${features.join(', ')}`; | ||
} catch (e) { | ||
console.error(e); | ||
loadEl.textContent = 'Error loading the Firebase SDK, check the console.'; | ||
<meta charset="UTF-8" /> | ||
<link rel="icon" type="image/svg+xml" href="/vite.svg" /> | ||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> | ||
<title>Orchids Heaven</title> | ||
<script type="text/javascript"> | ||
(function (l) { | ||
if (l.search[1] === "/") { | ||
var decoded = l.search | ||
.slice(1) | ||
.split("&") | ||
.map(function (s) { | ||
return s.replace(/~and~/g, "&"); | ||
}) | ||
.join("?"); | ||
window.history.replaceState( | ||
null, | ||
null, | ||
l.pathname.slice(0, -1) + decoded + l.hash | ||
); | ||
} | ||
}); | ||
})(window.location); | ||
</script> | ||
</head> | ||
<body> | ||
<div id="root"></div> | ||
<script type="module" src="/src/main.jsx"></script> | ||
</body> | ||
</html> |
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,41 @@ | ||
const baseUrl = import.meta.env.VITE_API_BASE_URL; | ||
|
||
export const getAllOrchids = async () => { | ||
try { | ||
const response = await fetch(`${baseUrl}`); | ||
if (!response.ok) { | ||
throw new Error("Network response was not ok"); | ||
} | ||
return await response.json(); | ||
} catch (error) { | ||
console.error("Error fetching orchids:", error); | ||
throw error; | ||
} | ||
}; | ||
|
||
export const getSpecialOrchids = async () => { | ||
try { | ||
const response = await fetch(`${baseUrl}?isSpecial=true`); | ||
if (!response.ok) { | ||
throw new Error("Network response was not ok"); | ||
} | ||
return await response.json(); | ||
} catch (error) { | ||
console.error("Error fetching orchids:", error); | ||
throw error; | ||
} | ||
}; | ||
|
||
export const getOrchidById = async (id) => { | ||
try { | ||
const response = await fetch(`${baseUrl}?Id=${id}`); | ||
if (!response.ok) { | ||
throw new Error("Network response was not ok"); | ||
} | ||
const data = await response.json(); | ||
return data[0]; | ||
} catch (error) { | ||
console.error("Error fetching orchids:", error); | ||
throw error; | ||
} | ||
}; |
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
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,23 @@ | ||
// Import the functions you need from the SDKs you need | ||
import { initializeApp } from "firebase/app"; | ||
import { getAnalytics } from "firebase/analytics"; | ||
import { getAuth } from "firebase/auth"; | ||
// TODO: Add SDKs for Firebase products that you want to use | ||
// https://firebase.google.com/docs/web/setup#available-libraries | ||
|
||
// Your web app's Firebase configuration | ||
// For Firebase JS SDK v7.20.0 and later, measurementId is optional | ||
const firebaseConfig = { | ||
apiKey: import.meta.env.VITE_FIREBASE_API_KEY, | ||
authDomain: import.meta.env.VITE_FIREBASE_AUTH_DOMAIN, | ||
projectId: import.meta.env.VITE_FIREBASE_PROJECT_ID, | ||
storageBucket: import.meta.env.VITE_FIREBASE_STORAGE_BUCKET, | ||
messagingSenderId: import.meta.env.VITE_FIREBASE_MESSAGING_SENDER_ID, | ||
appId: import.meta.env.VITE_FIREBASE_APP_ID, | ||
measurementId: import.meta.env.VITE_FIREBASE_MEASUREMENT_ID, | ||
}; | ||
|
||
// Initialize Firebase | ||
const app = initializeApp(firebaseConfig); | ||
export const analytics = getAnalytics(app); | ||
export const auth = getAuth(); |