fix safari not allowing upload
This commit is contained in:
+17
-1
@@ -1,6 +1,6 @@
|
|||||||
import JSZip from "jszip";
|
import JSZip from "jszip";
|
||||||
import { Create40kRoster } from "./roster40k";
|
import { Create40kRoster } from "./roster40k";
|
||||||
import { useState } from "react";
|
import { useEffect, useState, useRef } from "react";
|
||||||
import { Roster } from "./Roster";
|
import { Roster } from "./Roster";
|
||||||
import Demo0 from "./assets/Demo0.png";
|
import Demo0 from "./assets/Demo0.png";
|
||||||
import Demo1 from "./assets/Demo1.png";
|
import Demo1 from "./assets/Demo1.png";
|
||||||
@@ -8,6 +8,7 @@ import Demo1 from "./assets/Demo1.png";
|
|||||||
function App() {
|
function App() {
|
||||||
const [error, setError] = useState();
|
const [error, setError] = useState();
|
||||||
const [roster, setRoster] = useState();
|
const [roster, setRoster] = useState();
|
||||||
|
const uploadRef = useRef();
|
||||||
async function handleFileSelect(event) {
|
async function handleFileSelect(event) {
|
||||||
const files = event?.target?.files;
|
const files = event?.target?.files;
|
||||||
|
|
||||||
@@ -74,6 +75,20 @@ function App() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
// Check if the browser is Safari, and if so, remove the accept attribute
|
||||||
|
// from the file input element. This is because Safari doesn't support
|
||||||
|
// extensions on the accept attribute for input type=file
|
||||||
|
// (https://caniuse.com/input-file-accept). If set, they will not allow any
|
||||||
|
// file to be selected.
|
||||||
|
if (
|
||||||
|
navigator.userAgent.match(/AppleWebKit.*Safari/) &&
|
||||||
|
!navigator.userAgent.includes("Chrome")
|
||||||
|
) {
|
||||||
|
uploadRef.current?.removeAttribute("accept");
|
||||||
|
}
|
||||||
|
}, []);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="App">
|
<div className="App">
|
||||||
<div className="header print-display-none">
|
<div className="header print-display-none">
|
||||||
@@ -90,6 +105,7 @@ function App() {
|
|||||||
>
|
>
|
||||||
<input
|
<input
|
||||||
type="file"
|
type="file"
|
||||||
|
ref={uploadRef}
|
||||||
accept=".ros,.rosz"
|
accept=".ros,.rosz"
|
||||||
name="rosterUpload"
|
name="rosterUpload"
|
||||||
id="rosterUpload"
|
id="rosterUpload"
|
||||||
|
|||||||
Reference in New Issue
Block a user