From b7251fabfeebb60759b5f818347670068e6dcef5 Mon Sep 17 00:00:00 2001 From: dtomlinson Date: Tue, 17 Mar 2020 14:15:48 +0000 Subject: [PATCH] adding latest --- links.md | 72 ++++++++++-- notes.md | 110 ++++++++++++++++++ src/App.vue | 74 +++++++++--- src/assets/fonts/Rene-Bieder-Campton-Book.otf | Bin 0 -> 56124 bytes .../fonts/Rene_Bieder-Campton_Medium.otf | Bin 0 -> 56620 bytes src/router/index.js | 2 +- src/scss/_variables.scss | 15 +++ src/store/index.js | 26 +++-- src/utils/auth.js | 25 ++-- src/views/Home.vue | 21 +--- src/views/SignIn.vue | 8 +- vue.config.js | 16 ++- 12 files changed, 299 insertions(+), 70 deletions(-) create mode 100644 src/assets/fonts/Rene-Bieder-Campton-Book.otf create mode 100644 src/assets/fonts/Rene_Bieder-Campton_Medium.otf create mode 100644 src/scss/_variables.scss diff --git a/links.md b/links.md index 1b7abff..23fec8d 100644 --- a/links.md +++ b/links.md @@ -1,30 +1,78 @@ -Vue resources/references +# Vue resources/references + +## Javascript + +Babel ES2015 guide (good overview to JS) + + +## Interesting projects/things + +### Strapi + + + +Strapi is a opensource headless CMS. You can self-host and use it as an admin page to generate content. You can then write a front-end, and have it consume your Strapi endpoints to display content. + +A good tutorial to follow is: + + + +This will use Nuxt and Strapi to create a blog. + +### Pug + + + +Pug is a HTML templating engine that lets you write simplified HTML which it will render into full html. It has additional features, like loops/condititons/includes to do fancier stuff than with pure HTML. + +## Vuejs + +### General (vue) Awesome Vue -https://github.com/ais-one/vue-crud-x + + +### Extensions Real time data-table editing in Vue: -https://www.freecodecamp.org/news/how-to-build-a-real-time-editable-data-table-in-vue-js-46b7f0b11684/ + Integrating a datetime into a datatable CRUD: -https://www.reddit.com/r/vuejs/comments/apdm4u/how_to_integrate_a_datepicker_like_this_in/ + Vuetify CRUD datatables: -https://github.com/ais-one/vue-crud-x + Loading bar component for top of page: -https://medium.com/js-dojo/how-to-visualize-application-loading-state-in-vuetify-44f0f0242094 -https://gist.github.com/AlexeyIsavnin/c24d7ae75bfdb599907bd36d6bfc0344 + + + +### Tutorials/Guides (vue) Using AJAX and rate limiting with lodash: -https://vuejs.org/v2/guide/computed.html#Watchers + + +### References Composition API in Vue3: -https://css-tricks.com/an-early-look-at-the-vue-3-composition-api-in-the-wild/?ref=madewithvuejs.com + -Libraries that work with Vue: +## Interesting designs -JS library to simplify working with arrays, numbers, objects, strings, etc. +### Sites +- -- Document steps of creating js files for aws +### Fonts + +- `Rene bieder campton` + +## Nuxt + +### General (nuxt) + + + +### Tutorials/Guides (nuxt) + + diff --git a/notes.md b/notes.md index 78c4789..20af9c9 100644 --- a/notes.md +++ b/notes.md @@ -333,3 +333,113 @@ Portals will literally render the data where it needs to, then transport it to w Advanced Vue Component Design course https://adamwathan.me/advanced-vue-component-design/ + + + +## javascript + +### new + +Javascript isn't like python where you can map an object to something else using ducktyping. In javascript if you want to map an object to something else, you need to use `new`. + +https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/new + +```javascript +function Car(make, model, year) { + this.make = make; + this.model = model; + this.year = year; +} + +const car1 = new Car('Eagle', 'Talon TSi', 1993); + +console.log(car1.make); +// expected output: "Eagle" +``` + +## Adding custom CSS site-wide +https://css-tricks.com/how-to-import-a-sass-file-into-every-vue-component-in-an-app/ +https://joshuatz.com/posts/2019/vue-mixing-sass-with-scss-with-vuetify-as-an-example/#easy-solution + +Custom css (to apply a font for example) can be done so you don't need to import a `css` file in each component. + +All fonts should go in `./src/assets/fonts`. + +1. Create `./src/scss/_variables.scss` +2. In here create any custom css you need + +```scss +@font-face { + font-family: "Campton"; + src: url("~@/assets/fonts/Rene_Bieder-Campton_Medium.otf") format("opentype"); +} + +$my-font-family: "Campton", sans-serif !default; + +@import "~vuetify/src/styles/styles.sass"; +$body-font-family: "Times New Roman", Times, serif; + +@import "~vuetify/src/styles/settings/variables"; +$body-font-family: "Times New Roman", Times, serif; + +$mycol: purple; +``` + +3. Create `vue.config.js` in the root of the project (next to `package.json`). +4. Add the following to compile custom css: + +```javascript +module.exports = { + css: { + loaderOptions: { + scss: { + // sassOptions: { indentedSyntax: true }, + prependData: ` + @import "@/scss/_variables.scss"; + ` + } + } + }, + transpileDependencies: ["vuetify"] +}; +``` +5. In `App.vue` you can set the font for the whole project. + +```scss +#app { + font-family: "Campton", sans-serif, Arial, Helvetica,; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + color: $mycol; + margin-top: 60px; +} +``` + +## Import shortcuts using `@` + +Both `~@` and `@` resolve to `./src`. + +You use `~@` when in Vue components/js when set up with the vue cli. + +You use `@` when in `scss`/`css` files - it's provided by webpack. + + +## Import and syntax +https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import + +https://vueschool.io/articles/vuejs-tutorials/lazy-loading-and-code-splitting-in-vue-js/ + +In javascript you can use several ways to import modules. + +`import { function } from "module";` is used if you want to import a specific function/class etc from a `.js` file. You can chain the imports with a comma between them. These have to be javascript objects. + +`import defaultExport from "module";` is used to import the default exports from a `.js` file. The name you give it you will use to reference it (like doing `import module as name` in python). + +You can also use lazy loading - only loading the components/modules you need when you need them. You can see this being used in the `./src/router/index.js` + +```javascript +component: () => + import(/* webpackChunkName: "signup" */ "../views/SignUp.vue") +``` + +The difference between `require` and `import`: `import` is better to use as it's a function, whereas `require` is a js library. `require` is synchronous but `import` can be asynchronous, and supports lazy loading. diff --git a/src/App.vue b/src/App.vue index 5f589d2..6e8a64f 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,6 +1,6 @@ - diff --git a/src/assets/fonts/Rene-Bieder-Campton-Book.otf b/src/assets/fonts/Rene-Bieder-Campton-Book.otf new file mode 100644 index 0000000000000000000000000000000000000000..411a1778b8635c392b1beea8e09c431d4bb612ef GIT binary patch literal 56124 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

{cMwbd=eL}N3=s&CtP;mxjQ7`c*G85 z>uxxgR1mn^ik0uraTzOJ#n2lkv7Sw(MT4pvVdo3>m5EBUBT>YfYstgpC=mxdO%gSM zrx~IS@VZny$?a>y?Q6^JYsc+t&o=G{XpD+J pl-z%AUeEHNEf!D=(GO@BZ5sz!UK>1C7raytJX0UM(U555{{jB>#nAu& literal 0 HcmV?d00001 diff --git a/src/assets/fonts/Rene_Bieder-Campton_Medium.otf b/src/assets/fonts/Rene_Bieder-Campton_Medium.otf new file mode 100644 index 0000000000000000000000000000000000000000..a65ca2ae8093c285ee0f34bbfb2160a3b72b6d6b GIT binary patch literal 56620 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 literal 0 HcmV?d00001 diff --git a/src/router/index.js b/src/router/index.js index 5b6177f..c8ad0c3 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -81,7 +81,7 @@ AmplifyEventBus.$on("authState", async state => { } }); -router.beforeResolve(async (to, from, next) => { +router.beforeResolve(async (to, _from, next) => { console.log("router before resolve getting current user.") const user = await getUser(); if (!user) { diff --git a/src/scss/_variables.scss b/src/scss/_variables.scss new file mode 100644 index 0000000..ffae434 --- /dev/null +++ b/src/scss/_variables.scss @@ -0,0 +1,15 @@ +@font-face { + font-family: "Campton"; + src: url("~@/assets/fonts/Rene_Bieder-Campton_Medium.otf") format("opentype"); +} + +// src/sass/main.scss +$my-font-family: "Campton", sans-serif !default; + +@import "~vuetify/src/styles/styles.sass"; +$body-font-family: $my-font-family; + +@import "~vuetify/src/styles/settings/variables"; +$body-font-family: $my-font-family; + +$mycol: #1f366a; diff --git a/src/store/index.js b/src/store/index.js index a14b161..bcc8674 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -4,36 +4,46 @@ import { Auth } from "aws-amplify"; Vue.use(Vuex); -export default new Vuex.Store({ +const store = new Vuex.Store({ state: { authorized: false, - user: null + user: null, + userEmail: null }, mutations: { user(state, user) { state.authorized = !!user && user.attributes && user.attributes.email_verified; state.user = user; + }, + userEmail(state, userEmail) { + state.userEmail = userEmail; } }, actions: { async fetchUser({ commit }) { try { - const user = await Auth.currentAuthenticatedUser() + const user = await Auth.currentAuthenticatedUser(); const expires = user.getSignInUserSession().getIdToken().payload.exp - Math.floor(new Date().getTime() / 1000); console.log(`Token expires in ${expires} seconds.`); commit("user", user); + commit("userEmail", user.attributes.email); } catch (err) { commit("user", null); + commit("userEmail", null); } } }, modules: {}, - getters: { - userEmail: state => { - return state.user.attributes.email; - } - } + // getters: { + // userEmail: state => { + // return state.userEmail; + // } + // } }); + +// store.dispatch.fetchUser() + +export default store; diff --git a/src/utils/auth.js b/src/utils/auth.js index 23a608d..9e3d061 100644 --- a/src/utils/auth.js +++ b/src/utils/auth.js @@ -3,7 +3,7 @@ import { AmplifyEventBus } from "aws-amplify-vue"; async function getUser() { console.log("getting current user") - return await Auth.currentAuthenticatedUser() + return Auth.currentAuthenticatedUser() .then(user => { if (user && user.signInUserSession) { console.log("returning current signed in user") @@ -51,7 +51,7 @@ async function confirmSignUp(username, code) { console.log(user); } -function resendSignUp(username) { +async function resendSignUp(username) { return Auth.resendSignUp(username) .then(() => { return "Success"; @@ -89,16 +89,17 @@ async function signIn(username, password) { } } -function signOut() { - return Auth.signOut() - .then(data => { - AmplifyEventBus.$emit("authState", "signedOut"); - return data; - }) - .catch(err => { - console.log(err); - return err; - }); +async function signOut() { + try { + const data = await Auth.signOut(); + AmplifyEventBus.$emit("authState", "signedOut"); + // this.$store.dispatch("fetchUser") + return data; + } + catch (err) { + console.log(err); + return err; + } } export { getUser, signUp, confirmSignUp, resendSignUp, signIn, signOut }; diff --git a/src/views/Home.vue b/src/views/Home.vue index 058298f..0ad399d 100644 --- a/src/views/Home.vue +++ b/src/views/Home.vue @@ -1,28 +1,11 @@ diff --git a/src/views/SignIn.vue b/src/views/SignIn.vue index 2afbf51..2c2ee22 100644 --- a/src/views/SignIn.vue +++ b/src/views/SignIn.vue @@ -64,7 +64,13 @@ export default { console.log( `SIGN IN username: ${this.username}, password: ${this.password}` ); - await signIn(this.username, this.password); + try { + await signIn(this.username, this.password); + } catch (err) { + console.log(err); + } finally { + this.$store.dispatch("fetchUser"); + } console.log("Signed in"); } } diff --git a/vue.config.js b/vue.config.js index ef6e86b..6b8e95b 100644 --- a/vue.config.js +++ b/vue.config.js @@ -1,5 +1,13 @@ module.exports = { - "transpileDependencies": [ - "vuetify" - ] -} \ No newline at end of file + css: { + loaderOptions: { + scss: { + // sassOptions: { indentedSyntax: true }, + prependData: ` + @import "@/scss/_variables.scss"; + ` + } + } + }, + transpileDependencies: ["vuetify"] +};