Readyish for prod!
This commit is contained in:
+1
-1
@@ -53,7 +53,7 @@
|
||||
"@types/node": "^20.19.0",
|
||||
"@types/react": "^19.1.8",
|
||||
"@types/react-dom": "^19.1.6",
|
||||
"eslint": "^9.28.0",
|
||||
"eslint": "^9.29.0",
|
||||
"eslint-config-next": "^15.3.3",
|
||||
"eslint-config-prettier": "^10.1.5",
|
||||
"eslint-plugin-prettier": "^5.4.1",
|
||||
|
||||
Generated
+65
-65
@@ -112,17 +112,17 @@ importers:
|
||||
specifier: ^19.1.6
|
||||
version: 19.1.6(@types/[email protected])
|
||||
eslint:
|
||||
specifier: ^9.28.0
|
||||
version: 9.28.0([email protected])
|
||||
specifier: ^9.29.0
|
||||
version: 9.29.0([email protected])
|
||||
eslint-config-next:
|
||||
specifier: ^15.3.3
|
||||
version: 15.3.3([email protected]8.0([email protected]))([email protected])
|
||||
version: 15.3.3([email protected]9.0([email protected]))([email protected])
|
||||
eslint-config-prettier:
|
||||
specifier: ^10.1.5
|
||||
version: 10.1.5([email protected]8.0([email protected]))
|
||||
version: 10.1.5([email protected]9.0([email protected]))
|
||||
eslint-plugin-prettier:
|
||||
specifier: ^5.4.1
|
||||
version: 5.4.1(@types/[email protected])([email protected]([email protected]8.0([email protected])))([email protected]8.0([email protected]))([email protected])
|
||||
version: 5.4.1(@types/[email protected])([email protected]([email protected]9.0([email protected])))([email protected]9.0([email protected]))([email protected])
|
||||
import-in-the-middle:
|
||||
specifier: ^1.14.2
|
||||
version: 1.14.2
|
||||
@@ -152,7 +152,7 @@ importers:
|
||||
version: 5.8.3
|
||||
typescript-eslint:
|
||||
specifier: ^8.34.0
|
||||
version: 8.34.0([email protected]8.0([email protected]))([email protected])
|
||||
version: 8.34.0([email protected]9.0([email protected]))([email protected])
|
||||
|
||||
packages:
|
||||
|
||||
@@ -266,8 +266,8 @@ packages:
|
||||
resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
|
||||
'@eslint/[email protected]8.0':
|
||||
resolution: {integrity: sha512-fnqSjGWd/CoIp4EXIxWVK/sHA6DOHN4+8Ix2cX5ycOY7LG0UY8nHCU5pIp2eaE1Mc7Qd8kHspYNzYXT2ojPLzg==}
|
||||
'@eslint/[email protected]9.0':
|
||||
resolution: {integrity: sha512-3PIF4cBw/y+1u2EazflInpV+lYsSG0aByVIQzAgb1m1MhHFSbqTyNqtBKHgWf/9Ykud+DhILS9EGkmekVhbKoQ==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
|
||||
'@eslint/[email protected]':
|
||||
@@ -2235,8 +2235,8 @@ packages:
|
||||
resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
|
||||
[email protected]8.0:
|
||||
resolution: {integrity: sha512-ocgh41VhRlf9+fVpe7QKzwLj9c92fDiqOj8Y3Sd4/ZmVA4Btx4PlUYPq4pp9JDyupkf1upbEXecxL2mwNV7jPQ==}
|
||||
[email protected]9.0:
|
||||
resolution: {integrity: sha512-GsGizj2Y1rCWDu6XoEekL3RLilp0voSePurjZIkxL3wlm5o5EC9VpgaP7lrCvjnkuLvzFBQWB3vWB3K5KQTveQ==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
@@ -3720,9 +3720,9 @@ snapshots:
|
||||
tslib: 2.8.1
|
||||
optional: true
|
||||
|
||||
'@eslint-community/[email protected]([email protected]8.0([email protected]))':
|
||||
'@eslint-community/[email protected]([email protected]9.0([email protected]))':
|
||||
dependencies:
|
||||
eslint: 9.28.0([email protected])
|
||||
eslint: 9.29.0([email protected])
|
||||
eslint-visitor-keys: 3.4.3
|
||||
|
||||
'@eslint-community/[email protected]': {}
|
||||
@@ -3759,7 +3759,7 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@eslint/[email protected]8.0': {}
|
||||
'@eslint/[email protected]9.0': {}
|
||||
|
||||
'@eslint/[email protected]': {}
|
||||
|
||||
@@ -5071,15 +5071,15 @@ snapshots:
|
||||
dependencies:
|
||||
'@types/node': 20.19.0
|
||||
|
||||
'@typescript-eslint/[email protected](@typescript-eslint/[email protected]([email protected]8.0([email protected]))([email protected]))([email protected]8.0([email protected]))([email protected])':
|
||||
'@typescript-eslint/[email protected](@typescript-eslint/[email protected]([email protected]9.0([email protected]))([email protected]))([email protected]9.0([email protected]))([email protected])':
|
||||
dependencies:
|
||||
'@eslint-community/regexpp': 4.12.1
|
||||
'@typescript-eslint/parser': 8.34.0([email protected]8.0([email protected]))([email protected])
|
||||
'@typescript-eslint/parser': 8.34.0([email protected]9.0([email protected]))([email protected])
|
||||
'@typescript-eslint/scope-manager': 8.34.0
|
||||
'@typescript-eslint/type-utils': 8.34.0([email protected]8.0([email protected]))([email protected])
|
||||
'@typescript-eslint/utils': 8.34.0([email protected]8.0([email protected]))([email protected])
|
||||
'@typescript-eslint/type-utils': 8.34.0([email protected]9.0([email protected]))([email protected])
|
||||
'@typescript-eslint/utils': 8.34.0([email protected]9.0([email protected]))([email protected])
|
||||
'@typescript-eslint/visitor-keys': 8.34.0
|
||||
eslint: 9.28.0([email protected])
|
||||
eslint: 9.29.0([email protected])
|
||||
graphemer: 1.4.0
|
||||
ignore: 7.0.5
|
||||
natural-compare: 1.4.0
|
||||
@@ -5088,14 +5088,14 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@typescript-eslint/[email protected]([email protected]8.0([email protected]))([email protected])':
|
||||
'@typescript-eslint/[email protected]([email protected]9.0([email protected]))([email protected])':
|
||||
dependencies:
|
||||
'@typescript-eslint/scope-manager': 8.34.0
|
||||
'@typescript-eslint/types': 8.34.0
|
||||
'@typescript-eslint/typescript-estree': 8.34.0([email protected])
|
||||
'@typescript-eslint/visitor-keys': 8.34.0
|
||||
debug: 4.4.1
|
||||
eslint: 9.28.0([email protected])
|
||||
eslint: 9.29.0([email protected])
|
||||
typescript: 5.8.3
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
@@ -5118,12 +5118,12 @@ snapshots:
|
||||
dependencies:
|
||||
typescript: 5.8.3
|
||||
|
||||
'@typescript-eslint/[email protected]([email protected]8.0([email protected]))([email protected])':
|
||||
'@typescript-eslint/[email protected]([email protected]9.0([email protected]))([email protected])':
|
||||
dependencies:
|
||||
'@typescript-eslint/typescript-estree': 8.34.0([email protected])
|
||||
'@typescript-eslint/utils': 8.34.0([email protected]8.0([email protected]))([email protected])
|
||||
'@typescript-eslint/utils': 8.34.0([email protected]9.0([email protected]))([email protected])
|
||||
debug: 4.4.1
|
||||
eslint: 9.28.0([email protected])
|
||||
eslint: 9.29.0([email protected])
|
||||
ts-api-utils: 2.1.0([email protected])
|
||||
typescript: 5.8.3
|
||||
transitivePeerDependencies:
|
||||
@@ -5147,13 +5147,13 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@typescript-eslint/[email protected]([email protected]8.0([email protected]))([email protected])':
|
||||
'@typescript-eslint/[email protected]([email protected]9.0([email protected]))([email protected])':
|
||||
dependencies:
|
||||
'@eslint-community/eslint-utils': 4.7.0([email protected]8.0([email protected]))
|
||||
'@eslint-community/eslint-utils': 4.7.0([email protected]9.0([email protected]))
|
||||
'@typescript-eslint/scope-manager': 8.34.0
|
||||
'@typescript-eslint/types': 8.34.0
|
||||
'@typescript-eslint/typescript-estree': 8.34.0([email protected])
|
||||
eslint: 9.28.0([email protected])
|
||||
eslint: 9.29.0([email protected])
|
||||
typescript: 5.8.3
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
@@ -5734,19 +5734,19 @@ snapshots:
|
||||
|
||||
[email protected]: {}
|
||||
|
||||
[email protected]([email protected]8.0([email protected]))([email protected]):
|
||||
[email protected]([email protected]9.0([email protected]))([email protected]):
|
||||
dependencies:
|
||||
'@next/eslint-plugin-next': 15.3.3
|
||||
'@rushstack/eslint-patch': 1.11.0
|
||||
'@typescript-eslint/eslint-plugin': 8.34.0(@typescript-eslint/[email protected]([email protected]8.0([email protected]))([email protected]))([email protected]8.0([email protected]))([email protected])
|
||||
'@typescript-eslint/parser': 8.34.0([email protected]8.0([email protected]))([email protected])
|
||||
eslint: 9.28.0([email protected])
|
||||
'@typescript-eslint/eslint-plugin': 8.34.0(@typescript-eslint/[email protected]([email protected]9.0([email protected]))([email protected]))([email protected]9.0([email protected]))([email protected])
|
||||
'@typescript-eslint/parser': 8.34.0([email protected]9.0([email protected]))([email protected])
|
||||
eslint: 9.29.0([email protected])
|
||||
eslint-import-resolver-node: 0.3.9
|
||||
eslint-import-resolver-typescript: 3.10.1([email protected])([email protected]8.0([email protected]))
|
||||
eslint-plugin-import: 2.31.0(@typescript-eslint/[email protected]([email protected]8.0([email protected]))([email protected]))([email protected])([email protected]8.0([email protected]))
|
||||
eslint-plugin-jsx-a11y: 6.10.2([email protected]8.0([email protected]))
|
||||
eslint-plugin-react: 7.37.5([email protected]8.0([email protected]))
|
||||
eslint-plugin-react-hooks: 5.2.0([email protected]8.0([email protected]))
|
||||
eslint-import-resolver-typescript: 3.10.1([email protected])([email protected]9.0([email protected]))
|
||||
eslint-plugin-import: 2.31.0(@typescript-eslint/[email protected]([email protected]9.0([email protected]))([email protected]))([email protected])([email protected]9.0([email protected]))
|
||||
eslint-plugin-jsx-a11y: 6.10.2([email protected]9.0([email protected]))
|
||||
eslint-plugin-react: 7.37.5([email protected]9.0([email protected]))
|
||||
eslint-plugin-react-hooks: 5.2.0([email protected]9.0([email protected]))
|
||||
optionalDependencies:
|
||||
typescript: 5.8.3
|
||||
transitivePeerDependencies:
|
||||
@@ -5754,9 +5754,9 @@ snapshots:
|
||||
- eslint-plugin-import-x
|
||||
- supports-color
|
||||
|
||||
[email protected]([email protected]8.0([email protected])):
|
||||
[email protected]([email protected]9.0([email protected])):
|
||||
dependencies:
|
||||
eslint: 9.28.0([email protected])
|
||||
eslint: 9.29.0([email protected])
|
||||
|
||||
[email protected]:
|
||||
dependencies:
|
||||
@@ -5766,33 +5766,33 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
[email protected]([email protected])([email protected]8.0([email protected])):
|
||||
[email protected]([email protected])([email protected]9.0([email protected])):
|
||||
dependencies:
|
||||
'@nolyfill/is-core-module': 1.0.39
|
||||
debug: 4.4.1
|
||||
eslint: 9.28.0([email protected])
|
||||
eslint: 9.29.0([email protected])
|
||||
get-tsconfig: 4.10.1
|
||||
is-bun-module: 2.0.0
|
||||
stable-hash: 0.0.5
|
||||
tinyglobby: 0.2.14
|
||||
unrs-resolver: 1.9.0
|
||||
optionalDependencies:
|
||||
eslint-plugin-import: 2.31.0(@typescript-eslint/[email protected]([email protected]8.0([email protected]))([email protected]))([email protected])([email protected]8.0([email protected]))
|
||||
eslint-plugin-import: 2.31.0(@typescript-eslint/[email protected]([email protected]9.0([email protected]))([email protected]))([email protected])([email protected]9.0([email protected]))
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
[email protected](@typescript-eslint/[email protected]([email protected]8.0([email protected]))([email protected]))([email protected])([email protected])([email protected]8.0([email protected])):
|
||||
[email protected](@typescript-eslint/[email protected]([email protected]9.0([email protected]))([email protected]))([email protected])([email protected])([email protected]9.0([email protected])):
|
||||
dependencies:
|
||||
debug: 3.2.7
|
||||
optionalDependencies:
|
||||
'@typescript-eslint/parser': 8.34.0([email protected]8.0([email protected]))([email protected])
|
||||
eslint: 9.28.0([email protected])
|
||||
'@typescript-eslint/parser': 8.34.0([email protected]9.0([email protected]))([email protected])
|
||||
eslint: 9.29.0([email protected])
|
||||
eslint-import-resolver-node: 0.3.9
|
||||
eslint-import-resolver-typescript: 3.10.1([email protected])([email protected]8.0([email protected]))
|
||||
eslint-import-resolver-typescript: 3.10.1([email protected])([email protected]9.0([email protected]))
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
[email protected](@typescript-eslint/[email protected]([email protected]8.0([email protected]))([email protected]))([email protected])([email protected]8.0([email protected])):
|
||||
[email protected](@typescript-eslint/[email protected]([email protected]9.0([email protected]))([email protected]))([email protected])([email protected]9.0([email protected])):
|
||||
dependencies:
|
||||
'@rtsao/scc': 1.1.0
|
||||
array-includes: 3.1.9
|
||||
@@ -5801,9 +5801,9 @@ snapshots:
|
||||
array.prototype.flatmap: 1.3.3
|
||||
debug: 3.2.7
|
||||
doctrine: 2.1.0
|
||||
eslint: 9.28.0([email protected])
|
||||
eslint: 9.29.0([email protected])
|
||||
eslint-import-resolver-node: 0.3.9
|
||||
eslint-module-utils: 2.12.0(@typescript-eslint/[email protected]([email protected]8.0([email protected]))([email protected]))([email protected])([email protected])([email protected]8.0([email protected]))
|
||||
eslint-module-utils: 2.12.0(@typescript-eslint/[email protected]([email protected]9.0([email protected]))([email protected]))([email protected])([email protected])([email protected]9.0([email protected]))
|
||||
hasown: 2.0.2
|
||||
is-core-module: 2.16.1
|
||||
is-glob: 4.0.3
|
||||
@@ -5815,13 +5815,13 @@ snapshots:
|
||||
string.prototype.trimend: 1.0.9
|
||||
tsconfig-paths: 3.15.0
|
||||
optionalDependencies:
|
||||
'@typescript-eslint/parser': 8.34.0([email protected]8.0([email protected]))([email protected])
|
||||
'@typescript-eslint/parser': 8.34.0([email protected]9.0([email protected]))([email protected])
|
||||
transitivePeerDependencies:
|
||||
- eslint-import-resolver-typescript
|
||||
- eslint-import-resolver-webpack
|
||||
- supports-color
|
||||
|
||||
[email protected]([email protected]8.0([email protected])):
|
||||
[email protected]([email protected]9.0([email protected])):
|
||||
dependencies:
|
||||
aria-query: 5.3.2
|
||||
array-includes: 3.1.9
|
||||
@@ -5831,7 +5831,7 @@ snapshots:
|
||||
axobject-query: 4.1.0
|
||||
damerau-levenshtein: 1.0.8
|
||||
emoji-regex: 9.2.2
|
||||
eslint: 9.28.0([email protected])
|
||||
eslint: 9.29.0([email protected])
|
||||
hasown: 2.0.2
|
||||
jsx-ast-utils: 3.3.5
|
||||
language-tags: 1.0.9
|
||||
@@ -5840,21 +5840,21 @@ snapshots:
|
||||
safe-regex-test: 1.1.0
|
||||
string.prototype.includes: 2.0.1
|
||||
|
||||
[email protected](@types/[email protected])([email protected]([email protected]8.0([email protected])))([email protected]8.0([email protected]))([email protected]):
|
||||
[email protected](@types/[email protected])([email protected]([email protected]9.0([email protected])))([email protected]9.0([email protected]))([email protected]):
|
||||
dependencies:
|
||||
eslint: 9.28.0([email protected])
|
||||
eslint: 9.29.0([email protected])
|
||||
prettier: 3.5.3
|
||||
prettier-linter-helpers: 1.0.0
|
||||
synckit: 0.11.8
|
||||
optionalDependencies:
|
||||
'@types/eslint': 9.6.1
|
||||
eslint-config-prettier: 10.1.5([email protected]8.0([email protected]))
|
||||
eslint-config-prettier: 10.1.5([email protected]9.0([email protected]))
|
||||
|
||||
[email protected]([email protected]8.0([email protected])):
|
||||
[email protected]([email protected]9.0([email protected])):
|
||||
dependencies:
|
||||
eslint: 9.28.0([email protected])
|
||||
eslint: 9.29.0([email protected])
|
||||
|
||||
[email protected]([email protected]8.0([email protected])):
|
||||
[email protected]([email protected]9.0([email protected])):
|
||||
dependencies:
|
||||
array-includes: 3.1.9
|
||||
array.prototype.findlast: 1.2.5
|
||||
@@ -5862,7 +5862,7 @@ snapshots:
|
||||
array.prototype.tosorted: 1.1.4
|
||||
doctrine: 2.1.0
|
||||
es-iterator-helpers: 1.2.1
|
||||
eslint: 9.28.0([email protected])
|
||||
eslint: 9.29.0([email protected])
|
||||
estraverse: 5.3.0
|
||||
hasown: 2.0.2
|
||||
jsx-ast-utils: 3.3.5
|
||||
@@ -5890,15 +5890,15 @@ snapshots:
|
||||
|
||||
[email protected]: {}
|
||||
|
||||
[email protected]8.0([email protected]):
|
||||
[email protected]9.0([email protected]):
|
||||
dependencies:
|
||||
'@eslint-community/eslint-utils': 4.7.0([email protected]8.0([email protected]))
|
||||
'@eslint-community/eslint-utils': 4.7.0([email protected]9.0([email protected]))
|
||||
'@eslint-community/regexpp': 4.12.1
|
||||
'@eslint/config-array': 0.20.1
|
||||
'@eslint/config-helpers': 0.2.3
|
||||
'@eslint/core': 0.14.0
|
||||
'@eslint/eslintrc': 3.3.1
|
||||
'@eslint/js': 9.28.0
|
||||
'@eslint/js': 9.29.0
|
||||
'@eslint/plugin-kit': 0.3.2
|
||||
'@humanfs/node': 0.16.6
|
||||
'@humanwhocodes/module-importer': 1.0.1
|
||||
@@ -7128,12 +7128,12 @@ snapshots:
|
||||
possible-typed-array-names: 1.1.0
|
||||
reflect.getprototypeof: 1.0.10
|
||||
|
||||
[email protected]([email protected]8.0([email protected]))([email protected]):
|
||||
[email protected]([email protected]9.0([email protected]))([email protected]):
|
||||
dependencies:
|
||||
'@typescript-eslint/eslint-plugin': 8.34.0(@typescript-eslint/[email protected]([email protected]8.0([email protected]))([email protected]))([email protected]8.0([email protected]))([email protected])
|
||||
'@typescript-eslint/parser': 8.34.0([email protected]8.0([email protected]))([email protected])
|
||||
'@typescript-eslint/utils': 8.34.0([email protected]8.0([email protected]))([email protected])
|
||||
eslint: 9.28.0([email protected])
|
||||
'@typescript-eslint/eslint-plugin': 8.34.0(@typescript-eslint/[email protected]([email protected]9.0([email protected]))([email protected]))([email protected]9.0([email protected]))([email protected])
|
||||
'@typescript-eslint/parser': 8.34.0([email protected]9.0([email protected]))([email protected])
|
||||
'@typescript-eslint/utils': 8.34.0([email protected]9.0([email protected]))([email protected])
|
||||
eslint: 9.29.0([email protected])
|
||||
typescript: 5.8.3
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
@@ -15,15 +15,14 @@ import { toast } from 'sonner';
|
||||
import { HistoryDrawer } from '@/components/status';
|
||||
import type { Profile } from '@/utils/supabase';
|
||||
import type { RealtimeChannel } from '@supabase/supabase-js';
|
||||
import { makeConditionalClassName } from '@/lib/utils';
|
||||
|
||||
type TechTableProps = {
|
||||
initialStatuses: UserWithStatus[];
|
||||
className?: string;
|
||||
};
|
||||
|
||||
export const TechTable = ({
|
||||
initialStatuses = [],
|
||||
className = 'w-full max-w-7xl mx-auto px-4',
|
||||
}: TechTableProps) => {
|
||||
const { isAuthenticated } = useAuth();
|
||||
const { tvMode } = useTVMode();
|
||||
@@ -116,15 +115,8 @@ export const TechTable = ({
|
||||
|
||||
useEffect(() => {
|
||||
if (!isAuthenticated) return;
|
||||
//if (channelRef.current) {
|
||||
//const supabase = createClient();
|
||||
//supabase.removeChannel(channelRef.current).catch((error) => {
|
||||
//console.error(`Error unsubscribing from status updates: ${error}`);
|
||||
//});
|
||||
//channelRef.current = null;
|
||||
//}
|
||||
const supabase = createClient();
|
||||
|
||||
const supabase = createClient();
|
||||
const channel = supabase
|
||||
.channel('status_updates', {
|
||||
config: { broadcast: { self: true }}
|
||||
@@ -197,34 +189,54 @@ export const TechTable = ({
|
||||
);
|
||||
}
|
||||
|
||||
const containerClassName = makeConditionalClassName({
|
||||
context: tvMode,
|
||||
defaultClassName: 'mx-auto',
|
||||
on: 'lg:w-11/12 w-full mt-15',
|
||||
off: 'w-5/6',
|
||||
});
|
||||
const thClassName = makeConditionalClassName({
|
||||
context: tvMode,
|
||||
defaultClassName: 'py-3 px-4 border font-semibold',
|
||||
on: 'lg:text-6xl',
|
||||
off: 'lg:text-5xl',
|
||||
});
|
||||
const tdClassName = makeConditionalClassName({
|
||||
context: tvMode,
|
||||
defaultClassName: 'py-3 px-4 border',
|
||||
on: 'lg:text-5xl',
|
||||
off: 'lg:text-4xl',
|
||||
});
|
||||
const tCheckboxClassName = `py-3 px-4 border`;
|
||||
const checkBoxClassName = `lg:scale-200 cursor-pointer`;
|
||||
|
||||
return (
|
||||
<div className={className}>
|
||||
<table
|
||||
className={`w-full text-center border-collapse \
|
||||
${tvMode ? 'text-4xl lg:text-5xl' : 'text-base lg:text-lg'}`}
|
||||
>
|
||||
<div className={containerClassName}>
|
||||
<table className='w-full text-center rounded-md'>
|
||||
<thead>
|
||||
<tr className='bg-muted'>
|
||||
{!tvMode && (
|
||||
<th className='py-3 px-3 border'>
|
||||
<th className={tCheckboxClassName}>
|
||||
<input
|
||||
type='checkbox'
|
||||
className='scale-125 cursor-pointer'
|
||||
className={checkBoxClassName}
|
||||
checked={selectAll}
|
||||
onChange={handleSelectAllChange}
|
||||
/>
|
||||
</th>
|
||||
)}
|
||||
<th className='py-3 px-4 border font-semibold'>Name</th>
|
||||
<th className='py-3 px-4 border font-semibold'>
|
||||
<th className={thClassName}>Name</th>
|
||||
<th className={thClassName}>
|
||||
<Drawer>
|
||||
<DrawerTrigger className='hover:underline'>
|
||||
<DrawerTrigger
|
||||
className='hover:text-foreground/60 cursor-pointer'
|
||||
>
|
||||
Status
|
||||
</DrawerTrigger>
|
||||
<HistoryDrawer />
|
||||
</Drawer>
|
||||
</th>
|
||||
<th className='py-3 px-4 border font-semibold'>Updated At</th>
|
||||
<th className={thClassName}>Updated At</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@@ -237,10 +249,10 @@ export const TechTable = ({
|
||||
`}
|
||||
>
|
||||
{!tvMode && (
|
||||
<td className='py-2 px-3 border'>
|
||||
<td className={tCheckboxClassName}>
|
||||
<input
|
||||
type='checkbox'
|
||||
className='scale-125 cursor-pointer'
|
||||
className={checkBoxClassName}
|
||||
checked={selectedIds.includes(userWithStatus.user.id)}
|
||||
onChange={() =>
|
||||
handleCheckboxChange(userWithStatus.user.id)
|
||||
@@ -248,13 +260,13 @@ export const TechTable = ({
|
||||
/>
|
||||
</td>
|
||||
)}
|
||||
<td className='py-3 px-4 border font-medium'>
|
||||
<td className={tdClassName}>
|
||||
{userWithStatus.user.full_name ?? 'Unknown User'}
|
||||
</td>
|
||||
<td className='py-3 px-4 border'>
|
||||
<td className={tdClassName}>
|
||||
<Drawer>
|
||||
<DrawerTrigger
|
||||
className='text-left w-full p-2 rounded hover:bg-muted transition-colors'
|
||||
className='text-center w-full p-2 rounded-md hover:bg-muted transition-colors'
|
||||
onClick={() => setSelectedHistoryUser(userWithStatus.user)}
|
||||
>
|
||||
{userWithStatus.status}
|
||||
@@ -264,7 +276,7 @@ export const TechTable = ({
|
||||
)}
|
||||
</Drawer>
|
||||
</td>
|
||||
<td className='py-3 px-4 border text-muted-foreground'>
|
||||
<td className={tdClassName}>
|
||||
{formatTime(userWithStatus.created_at)}
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@@ -4,3 +4,17 @@ import { twMerge } from 'tailwind-merge';
|
||||
export function cn(...inputs: ClassValue[]) {
|
||||
return twMerge(clsx(inputs));
|
||||
}
|
||||
|
||||
export const makeConditionalClassName = ({
|
||||
context,
|
||||
defaultClassName,
|
||||
on = '',
|
||||
off = '',
|
||||
}: {
|
||||
context: boolean;
|
||||
defaultClassName: string;
|
||||
on?: string;
|
||||
off?: string;
|
||||
}) => {
|
||||
return defaultClassName + ' ' + (context ? on : off);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user