Make Unsupported Connection Links Clickable (#55)
* Initial commit * Required disabled message for TabType * Fixed build failure due to required types * Revert setting changes
This commit is contained in:
Vendored
+1
-1
@@ -3,4 +3,4 @@
|
|||||||
"editor.quickSuggestions": {
|
"editor.quickSuggestions": {
|
||||||
"strings": true
|
"strings": true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -14,22 +14,23 @@ export const NewDevice = () => {
|
|||||||
icon: <FiBluetooth className="h-4" />,
|
icon: <FiBluetooth className="h-4" />,
|
||||||
element: BLE,
|
element: BLE,
|
||||||
disabled: !navigator.bluetooth,
|
disabled: !navigator.bluetooth,
|
||||||
disabledMessage:
|
disabledMessage: "Web Bluetooth is currently only supported by Chromium-based browsers",
|
||||||
"WebBluetooth is currently only supported by Chromium based browsers: https://developer.mozilla.org/en-US/docs/Web/API/Web_Serial_API#browser_compatibility",
|
disabledLink: "https://developer.mozilla.org/en-US/docs/Web/API/Web_Serial_API#browser_compatibility"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "HTTP",
|
name: "HTTP",
|
||||||
icon: <FiWifi className="h-4" />,
|
icon: <FiWifi className="h-4" />,
|
||||||
element: HTTP,
|
element: HTTP,
|
||||||
disabled: false,
|
disabled: false,
|
||||||
|
disabledMessage: "Unsuported connection method"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "Serial",
|
name: "Serial",
|
||||||
icon: <FiTerminal className="h-4" />,
|
icon: <FiTerminal className="h-4" />,
|
||||||
element: Serial,
|
element: Serial,
|
||||||
disabled: !navigator.serial,
|
disabled: !navigator.serial,
|
||||||
disabledMessage:
|
disabledMessage: "Web Serial is currently only supported by Chromium-based browsers",
|
||||||
"WebSerial is currently only supported by Chromium based browsers: https://developer.mozilla.org/en-US/docs/Web/API/Web_Bluetooth_API#browser_compatibility",
|
disabledLink: "https://developer.mozilla.org/en-US/docs/Web/API/Web_Bluetooth_API#browser_compatibility"
|
||||||
},
|
},
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ export interface TabType {
|
|||||||
element: () => JSX.Element;
|
element: () => JSX.Element;
|
||||||
disabled?: boolean;
|
disabled?: boolean;
|
||||||
disabledMessage?: string;
|
disabledMessage?: string;
|
||||||
|
disabledLink?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface TabbedContentProps {
|
export interface TabbedContentProps {
|
||||||
@@ -28,11 +29,10 @@ export const TabbedContent = ({
|
|||||||
<Tab key={index}>
|
<Tab key={index}>
|
||||||
{({ selected }) => (
|
{({ selected }) => (
|
||||||
<div
|
<div
|
||||||
className={`flex h-10 cursor-pointer gap-3 rounded-md px-3 text-sm font-medium ${
|
className={`flex h-10 cursor-pointer gap-3 rounded-md px-3 text-sm font-medium ${selected
|
||||||
selected
|
? "bg-gray-100 text-gray-700"
|
||||||
? "bg-gray-100 text-gray-700"
|
: "text-gray-500 hover:text-gray-700"
|
||||||
: "text-gray-500 hover:text-gray-700"
|
}
|
||||||
}
|
|
||||||
`}
|
`}
|
||||||
>
|
>
|
||||||
{entry.icon && (
|
{entry.icon && (
|
||||||
@@ -55,7 +55,28 @@ export const TabbedContent = ({
|
|||||||
{!entry.disabled ? (
|
{!entry.disabled ? (
|
||||||
<entry.element />
|
<entry.element />
|
||||||
) : (
|
) : (
|
||||||
<Mono>{entry.disabledMessage}</Mono>
|
<div>
|
||||||
|
<Mono>
|
||||||
|
{entry.disabledMessage || "This tab is disabled"}.
|
||||||
|
{' '}
|
||||||
|
{entry.disabledLink && (
|
||||||
|
<>
|
||||||
|
Click
|
||||||
|
{' '}
|
||||||
|
<a
|
||||||
|
className="underline"
|
||||||
|
target="_blank"
|
||||||
|
rel="noreferrer"
|
||||||
|
href={entry.disabledLink}
|
||||||
|
>
|
||||||
|
here
|
||||||
|
</a>
|
||||||
|
{' '}
|
||||||
|
for more information.
|
||||||
|
</>
|
||||||
|
)}
|
||||||
|
</Mono>
|
||||||
|
</div>
|
||||||
)}
|
)}
|
||||||
</Tab.Panel>
|
</Tab.Panel>
|
||||||
))}
|
))}
|
||||||
|
|||||||
Reference in New Issue
Block a user