hunk.code_window:             PhotoViewGallery.builder(
                 scaleStateChangedCallback: (state) {
                   isZoomed.value = state != PhotoViewScaleState.initial;
                   ref.read(showControlsProvider.notifier).show = !isZoomed.value;
                 },
                 loadingBuilder: (context, event, index) => ImageFiltered(
                   imageFilter: ui.ImageFilter.blur(
                     sigmaX: 1,
                     sigmaY: 1,
                   ),
                   child: ImmichThumbnail(
                     asset: asset(),
                     fit: BoxFit.contain,
                   ),
                 ),
                 pageController: controller,
  
hunk.labels: keep keep keep keep keep replace replace replace replace replace replace replace replace keep keep keep
hunk.after_edit:               loadingBuilder: (context, event, index) => ClipRect(
                   child: Stack(
                     fit: StackFit.expand,
                     children: [
                       BackdropFilter(
                         filter: ui.ImageFilter.blur(
                           sigmaX: 10,
                           sigmaY: 10,
                         ),
                       ),
                       ImmichThumbnail(
                         asset: asset(),
                         fit: BoxFit.contain,
                       ),
                     ],
  
hunk.file_path: mobile/lib/modules/asset_viewer/views/gallery_viewer.dart
hunk.type: replace
file: <script lang="ts">
    import type { LibraryResponseDto } from '@immich/sdk';
    import { createEventDispatcher } from 'svelte';
    import Button from '../elements/buttons/button.svelte';
  
    export let library: Partial<LibraryResponseDto>;
  
    const dispatch = createEventDispatcher<{
      cancel: void;
      submit: Partial<LibraryResponseDto>;
    }>();
    const handleCancel = () => {
      dispatch('cancel');
    };
  
    const handleSubmit = () => {
      dispatch('submit', { ...library });
    };
  </script>
  
  <form on:submit|preventDefault={() => handleSubmit()} autocomplete="off" class="m-4 flex flex-col gap-2">
    <div class="flex flex-col gap-2">
      <label class="immich-form-label" for="path">Name</label>
      <input class="immich-form-input" id="name" name="name" type="text" bind:value={library.name} />
    </div>
    <div class="flex w-full justify-end gap-2 pt-2">
      <Button size="sm" color="gray" on:click={() => handleCancel()}>Cancel</Button>
      <Button size="sm" type="submit">Save</Button>
    </div>
  </form>
  