Skip to content

Feature | ShowSaveFile set the default file name #295

@AnnaSasDev

Description

@AnnaSasDev

Impact

Low

Problem / Motivation

Native call supports defaultFileName parameter but managed ShowSaveFile(...) currently passes null and has no API argument for it.

Current behavior

Relevant primitives exist in the files listed above, but this backlog item does not have a complete, explicit InfiniFrame contract with dedicated coverage.

Expected behavior

Add defaultFileName optional parameter to managed ShowSaveFile/ShowSaveFileAsync, pass through to native call, and add platform behavior notes in docs.

Proposed solution

Implement this incrementally:

  1. Define/adjust the managed public API in InfiniFrame.Shared.
  2. Wire implementation in InfiniFrame and InfiniFrame.Native where required.
  3. Add focused tests (tests/InfiniFrameTests*) and docs updates (docs/docs/guides/*, docs/docs/migration/*).

Alternatives considered

  • Keep as unsupported and document migration limitation.
  • Provide a workaround-only approach without first-class API.

Use case

Applications migrating from Photino expect this behavior and currently need custom handling for "ShowSaveFile How to set the default file name".

Example implementation (current API)

// Current API has no explicit defaultFileName parameter yet.
string? path = window.ShowSaveFile(
    title: "Export",
    defaultPath: Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments),
    filters: [("JSON", ["json"])]
);

Technical proposal

Scope implementation to: core managed runtime (src/InfiniFrame/*, src/InfiniFrame.Shared/*, src/InfiniFrame.Js/*). Keep behavior deterministic across Windows/Linux/macOS and document platform-specific limitations explicitly.

Additional context

Photino reference: tryphotino/photino.NET#140

Checklist

  • I searched existing issues
  • This is not a support question

Metadata

Metadata

Assignees

No one assigned

    Labels

    Photino BacklogItems that are hold overs from Photino that they either never resolved or implementedenhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions