FilamentF
Filament16mo ago
5 replies
Rolland

How to render SVG file on HTMLString

class LeaveApprovalStatsOverview extends BaseWidget
{
    ....

    private function createDescription(LeaveStatus $firstStatus, LeaveStatus $secondStatus): HtmlString
    {
        return new HtmlString(
            view('components.leave-status-description', compact('firstStatus', 'secondStatus'))->render()
        );
    }

    private function createLabel(int $first, int $second): HtmlString
    {
        return new HtmlString(
            view('components.leave-count-label', compact('first', 'second'))->render()
        );
    }
}

leave-status-description:
<div class='flex'>
    <div class='flex justify-center' style='color: {{ $firstStatus->getColorHex() }};'>
        <span>
            {{ $firstStatus->getLabel() }}
        </span>
        <span>
            {{ $firstStatus->getIconSvg() }}
        </span>
    </div>
    <span class='px-1'>/</span>
    <div class='flex justify-center' style='color: {{ $secondStatus->getColorHex() }};'>
        <span>
            {{ $secondStatus->getLabel() }}
        </span>
        <span>
            {{ $secondStatus->getIconSvg() }}
        </span>
    </div>
</div>


leave-count-label:
<div class='flex space-x-2'>
    <span>{{ $first }}</span>
    <span class='px-1'>/</span>
    <span>{{ $second }}</span>
</div>
Solution
{!! $firstStatus->getIconSvg() !!}
?
Was this page helpful?