Package updates & resolve job detail cloud upload bug. Added note type.

This commit is contained in:
Patrick Fic
2025-11-21 14:02:11 -08:00
parent f8869b4f0e
commit e069fd1170
10 changed files with 491 additions and 297 deletions

View File

@@ -92,6 +92,7 @@
"expo-font",
"expo-router",
"expo-notifications",
"expo-web-browser",
[
"@sentry/react-native/expo",
{

View File

@@ -3,7 +3,7 @@ import * as Haptics from "expo-haptics";
import { Stack, useGlobalSearchParams } from "expo-router";
import { useCallback } from "react";
import { useTranslation } from "react-i18next";
import { IconButton } from "react-native-paper";
import { Button } from "react-native-paper";
import { connect } from "react-redux";
const mapDispatchToProps = (dispatch) => ({
@@ -40,12 +40,20 @@ function JobsStack({ openImagePicker }) {
options={({ route }) => ({
//headerShown: false,
title: (route.params as any)?.title || "Job Details",
headerRight: () => (
<IconButton
headerRight: (props) => (
<Button
icon="cloud-upload-outline"
size={20}
style={{
display: "flex",
alignContent: "center",
alignItems: "center",
alignSelf: "center",
justifyContent: "center",
}}
onPress={handleUpload}
/>
>
{t("general.labels.upload")}
</Button>
),
})}
/>

View File

@@ -1,4 +1,4 @@
<babeledit_project version="1.2" be_version="2.7.1">
<babeledit_project be_version="2.7.1" version="1.2">
<!--
BabelEdit project file
@@ -2009,6 +2009,168 @@
</folder_node>
</children>
</folder_node>
<folder_node>
<name>notes</name>
<children>
<folder_node>
<name>labels</name>
<children>
<folder_node>
<name>type</name>
<children>
<concept_node>
<name>customer</name>
<definition_loaded>false</definition_loaded>
<description></description>
<comment></comment>
<default_text></default_text>
<translations>
<translation>
<language>en-US</language>
<approved>false</approved>
</translation>
<translation>
<language>es-MX</language>
<approved>false</approved>
</translation>
<translation>
<language>fr-CA</language>
<approved>false</approved>
</translation>
</translations>
</concept_node>
<concept_node>
<name>general</name>
<definition_loaded>false</definition_loaded>
<description></description>
<comment></comment>
<default_text></default_text>
<translations>
<translation>
<language>en-US</language>
<approved>false</approved>
</translation>
<translation>
<language>es-MX</language>
<approved>false</approved>
</translation>
<translation>
<language>fr-CA</language>
<approved>false</approved>
</translation>
</translations>
</concept_node>
<concept_node>
<name>office</name>
<definition_loaded>false</definition_loaded>
<description></description>
<comment></comment>
<default_text></default_text>
<translations>
<translation>
<language>en-US</language>
<approved>false</approved>
</translation>
<translation>
<language>es-MX</language>
<approved>false</approved>
</translation>
<translation>
<language>fr-CA</language>
<approved>false</approved>
</translation>
</translations>
</concept_node>
<concept_node>
<name>paint</name>
<definition_loaded>false</definition_loaded>
<description></description>
<comment></comment>
<default_text></default_text>
<translations>
<translation>
<language>en-US</language>
<approved>false</approved>
</translation>
<translation>
<language>es-MX</language>
<approved>false</approved>
</translation>
<translation>
<language>fr-CA</language>
<approved>false</approved>
</translation>
</translations>
</concept_node>
<concept_node>
<name>parts</name>
<definition_loaded>false</definition_loaded>
<description></description>
<comment></comment>
<default_text></default_text>
<translations>
<translation>
<language>en-US</language>
<approved>false</approved>
</translation>
<translation>
<language>es-MX</language>
<approved>false</approved>
</translation>
<translation>
<language>fr-CA</language>
<approved>false</approved>
</translation>
</translations>
</concept_node>
<concept_node>
<name>shop</name>
<definition_loaded>false</definition_loaded>
<description></description>
<comment></comment>
<default_text></default_text>
<translations>
<translation>
<language>en-US</language>
<approved>false</approved>
</translation>
<translation>
<language>es-MX</language>
<approved>false</approved>
</translation>
<translation>
<language>fr-CA</language>
<approved>false</approved>
</translation>
</translations>
</concept_node>
<concept_node>
<name>supplement</name>
<definition_loaded>false</definition_loaded>
<description></description>
<comment></comment>
<default_text></default_text>
<translations>
<translation>
<language>en-US</language>
<approved>false</approved>
</translation>
<translation>
<language>es-MX</language>
<approved>false</approved>
</translation>
<translation>
<language>fr-CA</language>
<approved>false</approved>
</translation>
</translations>
</concept_node>
</children>
</folder_node>
</children>
</folder_node>
</children>
</folder_node>
<folder_node>
<name>objects</name>
<children>

View File

@@ -118,6 +118,7 @@ export default function JobNotes() {
}
const NoteListItem = memo(function NoteListItem({ item }) {
const { t } = useTranslation();
return (
<Card mode="outlined" style={{ margin: 8 }}>
<Card.Content>
@@ -140,6 +141,9 @@ const NoteListItem = memo(function NoteListItem({ item }) {
{item.critical && (
<AntDesign name="warning" size={24} color="tomato" />
)}
<Text style={{ fontSize: 12 }}>
{t(`notes.labels.type.${item.type}`)}
</Text>
<Text style={{ fontSize: 12 }}>{item.created_by}</Text>
<Text style={{ fontSize: 12 }}>
{DateTime.fromISO(item.created_at).toLocaleString(

View File

@@ -1070,6 +1070,7 @@ export const GET_JOB_NOTES = gql`
critical
private
pinned
type
created_at
updated_at
created_by

545
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -32,30 +32,30 @@
"@react-navigation/elements": "^2.6.5",
"@react-navigation/native": "^7.1.8",
"@reduxjs/toolkit": "^2.9.1",
"@sentry/react-native": "^7.4.0",
"@sentry/react-native": "~7.2.0",
"axios": "^1.12.2",
"dinero.js": "^1.9.1",
"expo": "54.0.21",
"expo": "~54.0.25",
"expo-application": "~7.0.7",
"expo-constants": "~18.0.10",
"expo-dev-client": "~6.0.16",
"expo-dev-client": "~6.0.18",
"expo-device": "^8.0.9",
"expo-file-system": "~19.0.17",
"expo-font": "~14.0.9",
"expo-haptics": "~15.0.7",
"expo-image": "~3.0.10",
"expo-image-picker": "~17.0.8",
"expo-linking": "~8.0.8",
"expo-linking": "~8.0.9",
"expo-localization": "~17.0.7",
"expo-media-library": "~18.2.0",
"expo-notifications": "~0.32.12",
"expo-router": "~6.0.14",
"expo-splash-screen": "~31.0.10",
"expo-notifications": "~0.32.13",
"expo-router": "~6.0.15",
"expo-splash-screen": "~31.0.11",
"expo-status-bar": "~3.0.8",
"expo-symbols": "~1.0.7",
"expo-system-ui": "~6.0.8",
"expo-updates": "~29.0.12",
"expo-web-browser": "~15.0.8",
"expo-web-browser": "~15.0.9",
"firebase": "^12.4.0",
"formik": "^2.4.6",
"graphql": "^16.11.0",

View File

@@ -144,6 +144,19 @@
"moretab": "More"
}
},
"notes": {
"labels": {
"type": {
"customer": "Customer",
"general": "General",
"office": "Office",
"paint": "Paint",
"parts": "Parts",
"shop": "Shop",
"supplement": "Supplement"
}
}
},
"objects": {
"jobs": {
"fields": {

View File

@@ -144,6 +144,19 @@
"moretab": ""
}
},
"notes": {
"labels": {
"type": {
"customer": "",
"general": "",
"office": "",
"paint": "",
"parts": "",
"shop": "",
"supplement": ""
}
}
},
"objects": {
"jobs": {
"fields": {

View File

@@ -144,6 +144,19 @@
"moretab": ""
}
},
"notes": {
"labels": {
"type": {
"customer": "",
"general": "",
"office": "",
"paint": "",
"parts": "",
"shop": "",
"supplement": ""
}
}
},
"objects": {
"jobs": {
"fields": {