
@memsbdm
- Member Since
- Mar 19, 2025
- Lessons Completed
- 68
- Comments Contributed
- 12
- Hours Watched
- 11.76
Recent Activity
Here's what @memsbdm has been up to this past year
-
Replied to Thank you very much for sharing, memsbdm!! 😊
Hello Tom, is it possible to display the same toast multiple time ? Let say you fail auth, it will only appear once even if we submit multiple failed login forms
-
Commented on post Creating A Toast Message Manager
Hey, since vue-sonner updated to V2 we just need to add
import 'vue-sonner/style.css'
in the toast manager component if anyone has an issue with that :) -
Upvoted comment Sure thing, memsbdm! Thank you very much for catching this!!...
-
Upvoted comment Oh hey, haha! Seems we both found the culprit around the same...
-
Replied to Oh hey, haha! Seems we both found the culprit around the same...
Haha nice what a clean way to solve the issue, I'll replicate these changes it is way better than my cookie idea! Thanks for your time :)
-
Replied to Hi memsbdm!The mailer at plotmycourse.app is indeed still up...
Well well well, I removed
response.header('Referrer-Policy', 'no-referrer')
and it works now, it's seems like inertia is not receiving the token after the redirect().back()We probably could send a cookie before the redirect to keep the no-referrer good practice but seems a bit overkill..
-
Replied to Hi memsbdm!The mailer at plotmycourse.app is indeed still up...
Thanks! I will also keep trying to investigate :)
-
Commented on post Forgot Password & Password Reset
I just find out that when trying to reset our password with a valid token and providing a payload not satisfying the validator we don't have a form error message but we are redirected instead. I tried many times and I don't think that I missed something, I also tried on the PlotMyCourse deployed version but you disabled the mailer so I can't reproduce the error to see if you also have it or not…
-
Replied to Hi memsbdm!Unless you're looking to handle these exceptions ...
Thank you!!! It makes totally sense now 🫶🏼
-
Upvoted comment Hi memsbdm!Unless you're looking to handle these exceptions ...
-
Commented on post Applying Our Server-Side Authorization Checks
Hi Tom, after creating our exceptions like ForbiddenException, I guess that the best way to use them in handler.ts with
error instance of ForbiddenException
but what about a custom specific exception like a DB Conflict without vine for example. It feels weird to add specific errors there with a flashErrors but wrap the action in a try catch feels messy… Also I am probably missing a clean way to handle the exception properly when I don't need to redirect the user but add an error to display.
Just an example to illustrate:// action_example.ts throw new ConflictException('You or one of your associate already have this item registered.') // handler.ts async handle(error: unknown, ctx: HttpContext) { if (error instanceof ConflictException) { ctx.session.flashErrors({ [error.code!]: error.message }) // to access it using errors.E_CONFLICT return ctx.response.redirect().back() } return super.handle(error, ctx) } // conflict_exception.ts import { Exception } from '@adonisjs/core/exceptions' export default class ConflictException extends Exception { static status = 409 static code = 'E_CONFLICT' }
Copied! -
Commented on post Upgrading to Inertia 2
Hi Tom,
Just wondering if you are going to upload the migration to Tailwind@4 when fully supported if there are some breaking changes! :) -
Completed lesson Deferring A Prop Load Until it is Visible in InertiaJS 2
-
Completed lesson Defer Loading Props in InertiaJS 2
-
Completed lesson Polling for Changes in InertiaJS 2
-
Completed lesson Upgrading to Inertia 2
-
Completed lesson Clearing Login Attempt Rate Limits on Password Reset
-
Completed lesson Restricting Login Attempts with Rate Limiting
-
Completed lesson Applying Our Authorization UI Checks
-
Completed lesson Applying Our Server-Side Authorization Checks
-
Completed lesson Rolling Our Own Authorization Access Controls
-
Completed lesson Refreshing Partial Page Data
-
Completed lesson Removing an Organization User
-
Completed lesson Canceling an Organization Invite
-
Completed lesson Adding the Organization Invite User Interface
-
Completed lesson Accepting an Organization Invitation
-
Completed lesson Alerting Users When Their Account Email Is Changed
-
Completed lesson Sending an Invitation to Join Our Organization
-
Completed lesson Listing Current Organization Members
-
Completed lesson Account Deletion & Cleaning Dangling Organizations
-
Completed lesson Prefetching Page to Boost Load Times in InertiaJS 2
-
Completed lesson Super Easy Infinite Scroll in InertiaJS 2 with Prop Merging
-
Completed lesson User Profile Settings
-
Completed lesson Updating & Deleting an Organization
-
Completed lesson Creating the Settings Shell
-
Completed lesson Storing Lesson Order Changes & Handling Cross-Module Drag & Drops
-
Completed lesson Storing Module Order Changes from Vue Draggable
-
Completed lesson Adding A Publish Date & Time Input
-
Completed lesson Editing & Deleting Course Lessons
-
Completed lesson Creating & Listing Sortable Course Lessons
-
Completed lesson Creating, Editing, & Deleting Course Modules
-
Completed lesson The Tag Selector
-
Completed lesson Showing A Course's Details
-
Replied to Hey memsbdm! Yeah, the deployed app has been expanded beyond...
Thank you so much!! I tried many tags without success but
tbody
is working perfectly! -
Upvoted comment Hey memsbdm! Yeah, the deployed app has been expanded beyond...
-
Replied to discussion Vue Sortable
By the way I am trying to use
<Sortable>
inside a<TableBody>
and it saysHydration node mismatch
however when I am using it without Shadcn components it is working just fine. I tried to add the Sortable component in app.ts and ssr.ts like the Inertia Link but it doesn't help 🤔 -
Completed lesson Global Components and Hydration Mismatch in Action
-
Started discussion Vue Sortable
-
Completed lesson Querying & Listing Sortable Course Modules
-
Completed lesson Querying & Listing An Organization's Courses
-
Completed lesson Replicating Behaviors for Access Levels & Statuses
-
Upvoted comment Hi memsbdm!It looks like this was a tiny change that occurred...
-
Commented on post Editing the Active Organization
In the file inertia/composables/resource_action.ts, this line
const form = useForm(defaultForm)
is giving me the error ts: Argument of type 'Form' is not assignable to parameter of type 'FormDataType | (() => FormDataType)'. Type 'object' is not assignable to type 'FormDataType | (() => FormDataType)'.
As I did not find the FormDataType in inertia exports I replaced<Form extends object>
with<Form extends Record<string, any>>
I don't know yet if it is going to create any trouble later but it might help for this lesson.
-
Completed lesson Sorting Difficulties with Drag & Drop
-
Completed lesson Confirming & Deleting Difficulties
-
Completed lesson Updating Difficulties
-
Completed lesson Listing & Creating Difficulties
-
Completed lesson The Confirm Delete Dialog & Deleting the Active Organization
-
Completed lesson Editing the Active Organization
-
Completed lesson Creating A UseResourceActions Composable
-
Completed lesson Switching Between Organizations
-
Completed lesson The Form Dialog Component & Adding Organizations
-
Completed lesson Listing the User's Organizations
-
Completed lesson Setting & Loading the User's Active Organization
-
Completed lesson Forgot Password & Password Reset
-
Completed lesson Adding the Remember Me Token
-
Completed lesson Logging In Users & Displaying Exceptions
-
Completed lesson Onboarding Newly Registered Users
-
Completed lesson Logging Out Users
-
Completed lesson Splitting Our Routes Between Auth & Web
-
Completed lesson User Registration with InertiaJS
-
Completed lesson Creating A Toast Message Manager
-
Completed lesson Completing Our AppLayout & Navigation Bar
-
Completed lesson Typing Lucid Models in Inertia with DTOs
-
Completed lesson Seeding Our Initial Database Data
-
Completed lesson Creating A Lucid Model Mixin for our Organization Relationship
-
Completed lesson Defining Our Lucid Models & Relationships
-
Completed lesson Defining Our Migrations & Foreign Keys
-
Completed lesson Understanding Our Database Schema
-
Completed lesson What Are Some of Inertia's Limitations
-
Completed lesson Cross-Site Request Forgery (CSRF) Protection in InertiaJS
-
Completed lesson Creating A FormInput Vue Component
-
Completed lesson Common useForm Methods & Options
-
Completed lesson The useForm Helper
-
Completed lesson Form Validation & Displaying Errors
-
Account created Welcome to Adocasts, @memsbdm!