<turbo-frame id="lui-log-list-lui-log-list-a2f8c39196d7e1eb" class="lui-log_list"> <div class="lui-log_list__group" data-date="04-06-2025"> <div class="lui-accordion lui-accordion--open" data-controller="accordion" data-accordion-open-value="true"> <div class="lui-accordion__header"> <button class="cursor-pointer flex justify-start gap-1 flex-1 items-center" type="button" data-action="click->accordion#toggle" data-accordion-target="trigger" aria-controls="accordion_a0624ca14dc0"> <div class="lui-accordion__icon mt-1"> <div class="lui-icon h-[8px] w-[8px]"> <i class="fa-regular fa-chevron-down lui-icon__icon" style="font-size: 8px; color: black;"></i> </div> </div> <span class="lui-accordion__title flex justify-start gap-1"> <div class="lui-header lui-header--medium"> <div class="lui-header__title_container"> <span class="lui-header__title_container__title"> 04-06-2025 </span> </div> </div> </span> </button> <div aria-controls="accordion_da5ac5ac9371" class="lui-accordion__buttons"> </div> </div> <div id="accordion_0bc881291986" class="lui-accordion__content" data-accordion-target="content" > <div class="lui-accordion__content-inner"> <div class="pb-4"> <div class="lui-log" data-controller="log" data-log-expanded-copy-text-value="Show details" data-log-collapsed-copy-text-value="Hide details"> <div class="lui-log__main"> <div class="lui-log__content"> <!-- TODO: remove this once the log classes have been established --> <div class="lui-log__content__header"> <div class="lui-log__content__header__title" data-log-target="content"> <div class="lui-log__word">Item </div> <div class="lui-log__word">transitioned </div> <div class="lui-log__word">from</div> <b>Handling - Terminated</b> <div class="lui-log__word">to</div> <b>End Terminated Handling - Terminated</b> <div class="lui-log__word">.</div> </div> <div class="lui-log__content__header__description"> By System </div> <div class="lui-log__buttons"></div> </div> </div> <div class="lui-log__source_content"> 04/06/2025 16:18 </div> </div> </div> <div class="lui-log" data-controller="log" data-log-expanded-copy-text-value="Show details" data-log-collapsed-copy-text-value="Hide details"> <div class="lui-log__main"> <div class="lui-log__content"> <!-- TODO: remove this once the log classes have been established --> <div class="lui-log__content__header"> <div class="lui-log__content__header__title" data-log-target="content"> <div class="lui-log__word">Item </div> <div class="lui-log__word">transitioned </div> <div class="lui-log__word">from</div> <b>Handling - Evaluation</b> <div class="lui-log__word">to</div> <b>Handling - Terminated</b> <div class="lui-log__word">.</div> </div> <div class="lui-log__content__header__description"> By alexandre.rocha@theloop.pt </div> <div class="lui-log__buttons"></div> </div> </div> <div class="lui-log__source_content"> 04/06/2025 16:18 </div> </div> </div> <div class="lui-log" data-controller="log" data-log-expanded-copy-text-value="Show details" data-log-collapsed-copy-text-value="Hide details"> <div class="lui-log__main"> <div class="lui-log__content"> <!-- TODO: remove this once the log classes have been established --> <div class="lui-log__content__header"> <div class="lui-log__content__header__title" data-log-target="content"> <div class="lui-log__word">Item </div> <div class="lui-log__word">Value's </div> <div class="lui-log__word">Status </div> <div class="lui-log__word">updated </div> <div class="lui-log__word">from </div> <div class="lui-log__word">agreed </div> <div class="lui-log__word">to </div> <div class="lui-log__word">cancelled.</div> </div> <div class="lui-log__content__header__description"> By System </div> <div class="lui-log__buttons"></div> </div> </div> <div class="lui-log__source_content"> 04/06/2025 16:18 </div> </div> </div> </div> </div> </div> </div> </div> <div class="lui-log_list__group" data-date="23-03-2025"> <div class="lui-accordion lui-accordion--open" data-controller="accordion" data-accordion-open-value="true"> <div class="lui-accordion__header"> <button class="cursor-pointer flex justify-start gap-1 flex-1 items-center" type="button" data-action="click->accordion#toggle" data-accordion-target="trigger" aria-controls="accordion_8cc6033e1b36"> <div class="lui-accordion__icon mt-1"> <div class="lui-icon h-[8px] w-[8px]"> <i class="fa-regular fa-chevron-down lui-icon__icon" style="font-size: 8px; color: black;"></i> </div> </div> <span class="lui-accordion__title flex justify-start gap-1"> <div class="lui-header lui-header--medium"> <div class="lui-header__title_container"> <span class="lui-header__title_container__title"> 23-03-2025 </span> </div> </div> </span> </button> <div aria-controls="accordion_ed2b7043c76b" class="lui-accordion__buttons"> </div> </div> <div id="accordion_13406e628a97" class="lui-accordion__content" data-accordion-target="content" > <div class="lui-accordion__content-inner"> <div class="pb-4"> <div class="lui-log" data-controller="log" data-log-expanded-copy-text-value="Show details" data-log-collapsed-copy-text-value="Hide details"> <div class="lui-log__main"> <div class="lui-log__content"> <!-- TODO: remove this once the log classes have been established --> <div class="lui-log__content__header"> <div class="lui-log__content__header__title" data-log-target="content"> <div class="lui-log__word">Translation </div> <div class="lui-log__word">missing: </div> <div class="lui-log__word">en.log_translators.services/shipping.create_dpd_pickup_point_guide.expired</div> </div> <div class="lui-log__content__header__description"> By System </div> <div class="lui-log__buttons"></div> </div> </div> <div class="lui-log__source_content"> 23/03/2025 02:00 </div> </div> </div> </div> </div> </div> </div> </div> <div class="lui-log_list__group" data-date="20-03-2025"> <div class="lui-accordion lui-accordion--open" data-controller="accordion" data-accordion-open-value="true"> <div class="lui-accordion__header"> <button class="cursor-pointer flex justify-start gap-1 flex-1 items-center" type="button" data-action="click->accordion#toggle" data-accordion-target="trigger" aria-controls="accordion_8368eaa224d0"> <div class="lui-accordion__icon mt-1"> <div class="lui-icon h-[8px] w-[8px]"> <i class="fa-regular fa-chevron-down lui-icon__icon" style="font-size: 8px; color: black;"></i> </div> </div> <span class="lui-accordion__title flex justify-start gap-1"> <div class="lui-header lui-header--medium"> <div class="lui-header__title_container"> <span class="lui-header__title_container__title"> 20-03-2025 </span> </div> </div> </span> </button> <div aria-controls="accordion_fe490e61c9b4" class="lui-accordion__buttons"> </div> </div> <div id="accordion_4c0765c19d59" class="lui-accordion__content" data-accordion-target="content" > <div class="lui-accordion__content-inner"> <div class="pb-4"> <div class="lui-log" data-controller="log" data-log-expanded-copy-text-value="Show details" data-log-collapsed-copy-text-value="Hide details"> <div class="lui-log__main"> <div class="lui-log__content"> <!-- TODO: remove this once the log classes have been established --> <div class="lui-log__content__header"> <div class="lui-log__content__header__title" data-log-target="content"> <div class="lui-log__word">Translation </div> <div class="lui-log__word">missing: </div> <div class="lui-log__word">en.log_translators.services/shipping.create_dpd_pickup_point_guide.expired</div> </div> <div class="lui-log__content__header__description"> By System </div> <div class="lui-log__buttons"></div> </div> </div> <div class="lui-log__source_content"> 20/03/2025 02:00 </div> </div> </div> </div> </div> </div> </div> </div> <div class="lui-log_list__group" data-date="19-03-2025"> <div class="lui-accordion lui-accordion--open" data-controller="accordion" data-accordion-open-value="true"> <div class="lui-accordion__header"> <button class="cursor-pointer flex justify-start gap-1 flex-1 items-center" type="button" data-action="click->accordion#toggle" data-accordion-target="trigger" aria-controls="accordion_9266dde276af"> <div class="lui-accordion__icon mt-1"> <div class="lui-icon h-[8px] w-[8px]"> <i class="fa-regular fa-chevron-down lui-icon__icon" style="font-size: 8px; color: black;"></i> </div> </div> <span class="lui-accordion__title flex justify-start gap-1"> <div class="lui-header lui-header--medium"> <div class="lui-header__title_container"> <span class="lui-header__title_container__title"> 19-03-2025 </span> </div> </div> </span> </button> <div aria-controls="accordion_571270ec7af3" class="lui-accordion__buttons"> </div> </div> <div id="accordion_202921b2aace" class="lui-accordion__content" data-accordion-target="content" > <div class="lui-accordion__content-inner"> <div class="pb-4"> <div class="lui-log" data-controller="log" data-log-expanded-copy-text-value="Show details" data-log-collapsed-copy-text-value="Hide details"> <div class="lui-log__main"> <div class="lui-log__content"> <!-- TODO: remove this once the log classes have been established --> <div class="lui-log__content__header"> <div class="lui-log__content__header__title" data-log-target="content"> <div class="lui-log__word">Translation </div> <div class="lui-log__word">missing: </div> <div class="lui-log__word">en.log_translators.services/shipping.create_dpd_pickup_point_guide.expired</div> </div> <div class="lui-log__content__header__description"> By System </div> <div class="lui-log__buttons"></div> </div> </div> <div class="lui-log__source_content"> 19/03/2025 02:00 </div> </div> </div> </div> </div> </div> </div> </div> <div class="lui-log_list__group" data-date="03-03-2025"> <div class="lui-accordion lui-accordion--open" data-controller="accordion" data-accordion-open-value="true"> <div class="lui-accordion__header"> <button class="cursor-pointer flex justify-start gap-1 flex-1 items-center" type="button" data-action="click->accordion#toggle" data-accordion-target="trigger" aria-controls="accordion_d7314bf540b1"> <div class="lui-accordion__icon mt-1"> <div class="lui-icon h-[8px] w-[8px]"> <i class="fa-regular fa-chevron-down lui-icon__icon" style="font-size: 8px; color: black;"></i> </div> </div> <span class="lui-accordion__title flex justify-start gap-1"> <div class="lui-header lui-header--medium"> <div class="lui-header__title_container"> <span class="lui-header__title_container__title"> 03-03-2025 </span> </div> </div> </span> </button> <div aria-controls="accordion_e537b1ff44f7" class="lui-accordion__buttons"> </div> </div> <div id="accordion_fec2036ba5fb" class="lui-accordion__content" data-accordion-target="content" > <div class="lui-accordion__content-inner"> <div class="pb-4"> <div class="lui-log lui-log--error" data-controller="log" data-log-expanded-copy-text-value="Show details" data-log-collapsed-copy-text-value="Hide details"> <div class="lui-log__main"> <div class="lui-log__content"> <!-- TODO: remove this once the log classes have been established --> <div class="lui-log__content__header"> <div class="lui-log__content__header__title" data-log-target="content"> <div class="lui-log__word">We </div> <div class="lui-log__word">were </div> <div class="lui-log__word">unable </div> <div class="lui-log__word">to </div> <div class="lui-log__word">collect </div> <div class="lui-log__word">it. </div> <div class="lui-log__word">Please </div> <div class="lui-log__word">contact </div> <div class="lui-log__word">us </div> <div class="lui-log__word">for </div> <div class="lui-log__word">more </div> <div class="lui-log__word">information.</div> </div> <div class="lui-log__content__header__description"> By System </div> <div class="lui-log__buttons"></div> </div> </div> <div class="lui-log__source_content"> 03/03/2025 10:51 </div> </div> </div> <div class="lui-log" data-controller="log" data-log-expanded-copy-text-value="Show details" data-log-collapsed-copy-text-value="Hide details"> <div class="lui-log__main"> <div class="lui-log__content"> <!-- TODO: remove this once the log classes have been established --> <div class="lui-log__content__header"> <div class="lui-log__content__header__title" data-log-target="content"> <div class="lui-log__word">Email </div> <div class="lui-log__word">sent </div> <div class="lui-log__word">to </div> <div class="lui-log__word">daniel.albino@theloop.pt</div> </div> <div class="lui-log__content__header__description"> By System </div> <div class="lui-log__buttons"></div> </div> </div> <div class="lui-log__source_content"> 03/03/2025 10:47 </div> </div> </div> <div class="lui-log" data-controller="log" data-log-expanded-copy-text-value="Show details" data-log-collapsed-copy-text-value="Hide details"> <div class="lui-log__main"> <div class="lui-log__content"> <!-- TODO: remove this once the log classes have been established --> <div class="lui-log__content__header"> <div class="lui-log__content__header__title" data-log-target="content"> <div class="lui-log__word">Item </div> <div class="lui-log__word">transitioned </div> <div class="lui-log__word">from</div> <b>Handling - Received</b> <div class="lui-log__word">to</div> <b>Handling - Evaluation</b> <div class="lui-log__word">.</div> </div> <div class="lui-log__content__header__description"> By daniel.albino@theloop.pt </div> <div class="lui-log__buttons"></div> </div> </div> <div class="lui-log__source_content"> 03/03/2025 10:47 </div> </div> </div> <div class="lui-log" data-controller="log" data-log-expanded-copy-text-value="Show details" data-log-collapsed-copy-text-value="Hide details"> <div class="lui-log__main"> <div class="lui-log__content"> <!-- TODO: remove this once the log classes have been established --> <div class="lui-log__content__header"> <div class="lui-log__content__header__title" data-log-target="content"> <div class="lui-log__word">Item </div> <div class="lui-log__word">transitioned </div> <div class="lui-log__word">from</div> <b>Transport_1 - Delivered</b> <div class="lui-log__word">to</div> <b>Handling - Received</b> <div class="lui-log__word">.</div> </div> <div class="lui-log__content__header__description"> By daniel.albino@theloop.pt </div> <div class="lui-log__buttons"></div> </div> </div> <div class="lui-log__source_content"> 03/03/2025 10:47 </div> </div> </div> <div class="lui-log" data-controller="log" data-log-expanded-copy-text-value="Show details" data-log-collapsed-copy-text-value="Hide details"> <div class="lui-log__main"> <div class="lui-log__content"> <!-- TODO: remove this once the log classes have been established --> <div class="lui-log__content__header"> <div class="lui-log__content__header__title" data-log-target="content"> <div class="lui-log__word">Item </div> <div class="lui-log__word">transitioned </div> <div class="lui-log__word">from</div> <b>Transport_1 - To Deliver</b> <div class="lui-log__word">to</div> <b>Transport_1 - Waiting For Slip</b> <div class="lui-log__word">.</div> </div> <div class="lui-log__content__header__description"> By System </div> <div class="lui-log__buttons"></div> </div> </div> <div class="lui-log__source_content"> 03/03/2025 10:47 </div> </div> </div> <div class="lui-log" data-controller="log" data-log-expanded-copy-text-value="Show details" data-log-collapsed-copy-text-value="Hide details"> <div class="lui-log__main"> <div class="lui-log__content"> <!-- TODO: remove this once the log classes have been established --> <div class="lui-log__content__header"> <div class="lui-log__content__header__title" data-log-target="content"> <div class="lui-log__word">Item </div> <div class="lui-log__word">transitioned </div> <div class="lui-log__word">from</div> <b>Transport Decision_3 - Output 0</b> <div class="lui-log__word">to</div> <b>Transport_1 - To Deliver</b> <div class="lui-log__word">.</div> </div> <div class="lui-log__content__header__description"> By System </div> <div class="lui-log__buttons"></div> </div> </div> <div class="lui-log__source_content"> 03/03/2025 10:47 </div> </div> </div> <div class="lui-log" data-controller="log" data-log-expanded-copy-text-value="Show details" data-log-collapsed-copy-text-value="Hide details"> <div class="lui-log__main"> <div class="lui-log__content"> <!-- TODO: remove this once the log classes have been established --> <div class="lui-log__content__header"> <div class="lui-log__content__header__title" data-log-target="content"> <div class="lui-log__word">Item </div> <div class="lui-log__word">transitioned </div> <div class="lui-log__word">from</div> <b>Transport Decision_3 - Periodic Retry</b> <div class="lui-log__word">to</div> <b>Transport Decision_3 - Output 0</b> <div class="lui-log__word">.</div> </div> <div class="lui-log__content__header__description"> By System </div> <div class="lui-log__buttons"></div> </div> </div> <div class="lui-log__source_content"> 03/03/2025 10:47 </div> </div> </div> <div class="lui-log" data-controller="log" data-log-expanded-copy-text-value="Show details" data-log-collapsed-copy-text-value="Hide details"> <div class="lui-log__main"> <div class="lui-log__content"> <!-- TODO: remove this once the log classes have been established --> <div class="lui-log__content__header"> <div class="lui-log__content__header__title" data-log-target="content"> <div class="lui-log__word">Item </div> <div class="lui-log__word">transitioned </div> <div class="lui-log__word">from</div> <b>Transport Decision_3 - Input</b> <div class="lui-log__word">to</div> <b>Transport Decision_3 - Periodic Retry</b> <div class="lui-log__word">.</div> </div> <div class="lui-log__content__header__description"> By System </div> <div class="lui-log__buttons"></div> </div> </div> <div class="lui-log__source_content"> 03/03/2025 10:47 </div> </div> </div> <div class="lui-log" data-controller="log" data-log-expanded-copy-text-value="Show details" data-log-collapsed-copy-text-value="Hide details"> <div class="lui-log__main"> <div class="lui-log__content"> <!-- TODO: remove this once the log classes have been established --> <div class="lui-log__content__header"> <div class="lui-log__content__header__title" data-log-target="content"> <div class="lui-log__word">Item </div> <div class="lui-log__word">transitioned </div> <div class="lui-log__word">from</div> <b>Escolher método de entrega - Sent</b> <div class="lui-log__word">to</div> <b>Transport Decision_3 - Input</b> <div class="lui-log__word">.</div> </div> <div class="lui-log__content__header__description"> By System </div> <div class="lui-log__buttons"></div> </div> </div> <div class="lui-log__source_content"> 03/03/2025 10:47 </div> </div> </div> </div> </div> </div> </div> </div> <div class="lui-log_list__pagination"> <span class="lui-pagination" data-controller="lui--pagination"> <button class="lui-button lui-button--icon-only lui-button--neutral--secondary lui-button--size-small lui-button--disabled w-fit w-fit relative" data-controller="lui--button" disabled="disabled"> <div class="opacity-100 inline-flex" data-lui--button-target="leadingIcon"> <div class="flex items-center justify-center" style="width: 14px; height: 14px;"><i class="lui-button__icon lui-button__icon--small fa-regular fa-chevron-left" data-lui--button-target="leadingIcon"></i></div> </div> <div class="absolute w-full flex items-center justify-center opacity-0" data-lui--button-target="loadingIcon"> <i class="lui-m_icon animate-spin material-symbols-outlined" style="--lui-micon-size: 14px;"> progress_activity </i> </div> </button> <a class="lui-pagination__item lui-pagination__item--active" disabled="disabled">1</a> <a href="/lookbook/inspect/log_list/from_item_log_hash_source?page=2" class="lui-pagination__item" disabled="disabled">2</a> <a href="/lookbook/inspect/log_list/from_item_log_hash_source?page=3" class="lui-pagination__item" disabled="disabled">3</a> <a class="lui-button lui-button--icon-only lui-button--neutral--secondary lui-button--size-small w-fit w-fit relative" data-controller="lui--button" data-action="lui--button#startLoading" href="/lookbook/inspect/log_list/from_item_log_hash_source?page=2" disabled="disabled"> <div class="opacity-100 inline-flex" data-lui--button-target="leadingIcon"> <div class="flex items-center justify-center" style="width: 14px; height: 14px;"><i class="lui-button__icon lui-button__icon--small fa-regular fa-chevron-right" data-lui--button-target="leadingIcon"></i></div> </div> <div class="absolute w-full flex items-center justify-center opacity-0" data-lui--button-target="loadingIcon"> <i class="lui-m_icon animate-spin material-symbols-outlined" style="--lui-micon-size: 14px;"> progress_activity </i> </div> </a> </span> </div></turbo-frame>LogList
Description
Related components
| Used Components | Components where is Used |
|---|---|
| Label |
Usage rules
- ✅ Do
- ❌ Don't
<% id = params.fetch(:id, "lui-log-list-#{Random.hex(8)}")%><%= render LooposUi::LogList.from_any_source( log_list, id: id, page: page) %>No notes provided.
No params configured.
Description
LogList is a component for displaying chronological logs in a grouped, paginated format. It automatically groups logs by date and provides built-in pagination support. The component can work with various data sources through its factory system.
Arguments
| Property | Default | Required | Description |
|---|---|---|---|
id |
"lui-log-list-{id}" |
✓ | Unique identifier for the component |
logs |
[] |
Array of LooposUi::Log objects to display |
|
items |
nil |
Enumerable of items to convert to logs using a factory | |
factory |
nil |
Factory class to convert items to logs (must inherit from LooposUi::Log::Factories::Base) |
|
path |
nil |
URL path for pagination links | |
config |
Config.new.to_h |
Configuration object for component behavior. Applicable only for from_any_source method. |
|
pagy |
nil |
Pagy object for pagination. Prefer over pagination. |
|
pagination |
nil |
Pagination parameters hash |
Configuration Options
The config option accepts a LogList::Config object with the following attributes:
| Attribute | Type | Default | Description |
|---|---|---|---|
max_items |
Integer |
15 |
Maximum number of logs to display |
sort_direction |
Symbol |
:desc |
Sort direction (:asc or :desc) |
has_pagination |
Boolean |
true |
Whether to show pagination controls |
Usage
There are three ways to use the LogList component:
- using the factory
from_any_sourcemethod - passing
items:and an optionalfactory:arguments - passing in a
logs:list with pre-builtLogcomponents
These examples are ordered in order of preference, complexity, convenience and control.
You probably want to use the from_any_source factory method.
LooposUI comes with two built-in factories:
CoreItemLogListPresenterHashfor hash data from core item log presenters.ScriptforLoopOs::Scriptobjects.
You can read more in the Factory System section.
Using the factory from_any_source method
Automatically detects and uses the appropriate factory for a given data source.
This usage already takes care of pagination, but you must pass the page parameter.
Otherwise, the component will render without pagination.
You can also pass a config: hash to configure the component.
This usage does not require ordering or pagination, it will be done automatically.
# Automatically detects the right factoryrender LooposUi::LogList.from_any_source( source: my_data_source, id: "auto-detected-logs", config: { max_items: 20 }, page: params[:page] || 1)# With custom retry path for script logs using ScriptProxyscript_proxy = LoopOs::Scripts::ScriptProxy.new(@loop_os_script, context: { retry_path_proc: ->(script_log) { rerun_script_script_path(@loop_os_script, script_log_id: script_log.id) }})render LooposUi::LogList.from_any_source( source: script_proxy, id: "script-logs", config: { max_items: 15 }, page: params[:page] || 1)Note: The ScriptProxy approach provides a clean separation of concerns. The proxy encapsulates the retry functionality and is passed as context to individual log entries, allowing the factories to remain unaware of specific implementation details.
Passing items: and an optional factory: arguments
Use when you have a collection of items that need to be converted to logs.
The items are expected to be paginated and sorted.
Not passing in pagination parameters will disable pagination.
The LogList will attempt to detect an usable factory, but you can use your own with the factory: option.
# With automatic factory detectionrender LooposUi::LogList.new( id: "item-logs", items: Item.all, path: some_path_that_renders_this_list)# With custom factoryrender LooposUi::LogList.new( id: "custom-logs", items: MyCustomModel.all, factory: MyCustomFactory, path: some_path_that_renders_this_list)Passing in a logs: list with pre-built Log components
Use when you already have LooposUi::Log objects ready to display, or want to build them without
creating a factory.
This usage also expects the logs to be paginated and sorted.
Not passing in pagination parameters will disable pagination.
logs = [ LooposUi::Log.new(date: Time.current, user: "John Doe", error: false).with_content("Item created"), LooposUi::Log.new(date: 1.day.ago, user: "Jane Smith", error: true).with_content("Error occurred")]render LooposUi::LogList.new( id: "my-logs", logs: logs,)Factory System
The LogList component uses a factory system to convert different data sources into LooposUi::ListLog objects.
Similar to the LooposUi::Log component, the factory system is used to create the log lists.
It expects a source object, and returns a LooposUi::ListLog object.
Built-in Factories
LooposUi comes with two built-in factories, which already handle pagination and sorting.
- CoreItemLogListPresenterHash: Handles hash data from one core item log presenter.
Source: (Core)
Item.log_presenter.view_logsis an example of such data. - Script: Handles
LoopOs::Script(source) objects
Controller Usage
class ItemsController < ApplicationController def logs pagy, logs = pagy( SomeLog.where(item: @item).order(created_at: :desc), page: params[:page], items: 15 ) render LooposUi::LogList.new( id: "item-#{@item.id}-logs", logs: logs, pagy: pagy, path: item_logs_path(@item) ) endendPerformance Considerations
Warnings
The component will log warnings in the following scenarios:
- Missing Path: When
pathis not provided, pagination will use the current path. - Too Many Logs: When more than
config.max_itemslogs are passed, performance may be impacted. Ensure to paginate the data.
Error Handling
The component includes a NilLog constant that represents a failed log creation, displaying "Failed to show this log." when errors occur during initialization.
- If
createraises an exception, it returnsLooposUi::Log::NilLog - In development mode, exceptions are re-raised for debugging
- Errors are logged for production debugging