Added
- Optional lazy loading for the comments component.
commentify.lazydefaults tofalse, so the thread stays in the first HTML response. A tag can passlazyor:lazy="false". Tailwind and Bootstrap placeholder views and a Filament toggle ship with the flag. - Optional recursive CTE thread loader.
commentify.tree_loaderdefaults toeager, andcommentify.max_depthdefaults to2(clamped from 0 to 50). A depth of0does not preload replies. CommentPosting, dispatched after the author is associated and before the comment is saved. A listener can cancel the save.CommentUnlikedfor unlike actions.MentionSearchfor the default @mention query.%,_, and\in the term are escaped.Comment::forThread()andComment::hasThreadColumn(). The scope does nothing when thethreadcolumn is absent.HasLikes::viewerLikeExists()so a list can mark the current viewer's like without loading every like row.Comment::isEdited(), which is false unlesscommentify_comment_revisionsexists and contains a row for the comment.- Livewire hooks another package can override: the thread on
mount,resolvedThread,commentSetting, read-only and approval checks, the rate-limit maximum, extra validation, mass-assignment attributes,prepareCommentForCreate,beforeCommentCreate,orderChildren, andresetComposer. - Config keys those hooks read:
honeypot,rate_limit,mentions,schema_org, andreplies_per_page. - English and Spanish strings for the loading placeholder, the edited marker, the deleted placeholder, and the honeypot label.
- Slipway as a dev dependency, with a generated GitHub Actions workflow. It validates Composer, audits dependencies, scans for secrets, and runs PHPUnit on PHP 8.3 and 8.4.
- A description on each method in
src.
Changed
postComment()stops whenCommentPostingis cancelled or whensave()returns false, then clears the composer.