[HN Gopher] New Patterns for Apps
       ___________________________________________________________________
        
       New Patterns for Apps
        
       Author : tomayac
       Score  : 37 points
       Date   : 2022-10-10 18:44 UTC (4 hours ago)
        
 (HTM) web link (web.dev)
 (TXT) w3m dump (web.dev)
        
       | skybrian wrote:
       | Under "how to save a file" [1] it tries to use
       | window.showSaveFilePicker (which has poor browser support) and
       | falls back on creating an invisible link and clicking on it.
       | 
       | It seems a bit much, versus just having a download link, possibly
       | styling it as a button. What do you get for that?
       | 
       | [1] https://web.dev/patterns/files/
        
         | easrng wrote:
         | They're assuming you generated the file in the browser and you
         | don't have a link from a server.
        
           | skybrian wrote:
           | It's possible to create a temporary URL (with data from an
           | ArrayBuffer) entirely client side:
           | 
           | URL.createObjectURL(new Blob(...));
           | 
           | It creates a blob: URL that you can use as a link.
        
         | tomayac wrote:
         | The advantage of using the `showSaveFilePicker()` method is
         | that you can get a `FileSystemFileHandle`, with which you can
         | then implement a true "edit, save, edit, save,..." flow; always
         | saving over the current file, instead of downloading copies on
         | each "save".
        
           | modeless wrote:
           | In the future you may even be able to save the handle and
           | retain permission to the file or directory between page
           | reloads or even browser restart. I've been experimenting with
           | this in Chrome. There's a preliminary implementation behind a
           | flag (--enable-
           | features=kFileSystemAccessPersistentPermissions).
           | 
           | The preliminary implementation is still buggy, but it's an
           | extremely useful feature. You could use it to e.g. make a web
           | version of VSCode that only ever has to request permission to
           | your workspace directory once, and can then edit any file in
           | it without constant permission requests, just like the
           | Electron version of VSCode. (The persistent file access
           | permission is displayed in the address bar and can be revoked
           | at any time).
        
       ___________________________________________________________________
       (page generated 2022-10-10 23:00 UTC)