定制 polashmahmud/inertia-toast 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

polashmahmud/inertia-toast

最新稳定版本:v2.0.1

Composer 安装命令:

composer require polashmahmud/inertia-toast

包简介

Simple InertiaJS + Vue + Laravel toast notification system using vue-sonner.

README 文档

README

Simple, zero-boilerplate toast notifications for Laravel + Inertia.js (Vue) using vue-sonner.

It ships with:

  • Laravel middleware that exposes flash messages to Inertia
  • A tiny Vue plugin that auto-mounts the Toaster and listens to Inertia navigations
  • A publishable config to customize position, theme, and behavior

Installation

  1. Install the package
composer require polashmahmud/inertia-toast:^2.0.1
  1. Install the client dependency
npm install vue-sonner
  1. Add the plugin in your Vue app (auto-mounts Toaster)

resources/js/app.ts

import "vue-sonner/style.css";
import notification from "@inertia-toast/plugins";

createInertiaApp({
  // ...
  setup({ el, App, props, plugin }) {
    createApp({ render: () => h(App, props) })
      .use(plugin)
      .use(notification)
      .mount(el);
  },
});

You do NOT need to render <Toaster /> yourself—the plugin does it for you.

  1. Vite alias

vite.config.ts

import path from "path";

export default defineConfig({
  resolve: {
    alias: {
      "@inertia-toast": path.resolve(
        __dirname,
        "vendor/polashmahmud/inertia-toast/resources/js"
      ),
    },
  },
});

Optionally, add a TypeScript path mapping for better editor DX in tsconfig.json:

{
  "compilerOptions": {
    "paths": {
      "@inertia-toast/*": ["./vendor/polashmahmud/inertia-toast/resources/js/*"]
    }
  }
}
  1. Publish the config
php artisan vendor:publish --tag="inertia-toast-config"

This creates config/inertia-toast.php where you can tweak:

return [
    'position' => 'bottom-right', // top-left | top-center | top-right | bottom-left | bottom-center | bottom-right
    'closeButton' => true,
    'expand' => false,
    'theme' => 'system',          // light | dark | system
    'richColors' => true,
    'toastOptions' => [
        'style' => [],
        'class' => '',
        'descriptionClass' => '',
    ],
];

Usage

From your controller or route, flash to the session. The plugin automatically shows a toast after the Inertia visit finishes.

Minimal (string body):

return back()->with('success', 'That worked nicely');

With description (indexed array):

return back()->with('warning', ['That worked nicely', 'Please check again']);

With description (associative array):

return back()->with('error', [
        'message' => 'Something went wrong!',
        'description' => 'Please try again after 5 seconds.',
]);

Supported types: success, error, warning, info.

Custom Styling

You can customize the appearance of the toast notifications by modifying the toastOptions in config/inertia-toast.php.

'toastOptions' => [
    'style' => [
        'background' => '#fda4af',
    ],
    'class' => 'bg-red-500 text-white',
    'descriptionClass' => 'text-red-100',
],

Using Tailwind CSS

If you want to use Tailwind CSS classes in the class or descriptionClass options, you must ensure that Tailwind scans your configuration file. Add the config file path to the content array in your tailwind.config.js:

module.exports = {
  content: [
    "./resources/**/*.blade.php",
    "./resources/**/*.js",
    "./resources/**/*.vue",
    "./config/inertia-toast.php", // Add this line
  ],
  // ...
};

Troubleshooting

  • Changed config but UI didn’t update?
    • Run: php artisan optimize:clear
    • Hard refresh the browser (Disable cache in DevTools)
    • Ensure the provider is registered and alias resolves

License

MIT

统计信息

  • 总下载量: 337
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 1
  • 点击次数: 2
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 1
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-10-28

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固