Merge pull request 'amalia/21-agustus-25' (#27) from amalia/21-agustus-25 into join
Reviewed-on: bip/mobile-darmasaba#27
This commit is contained in:
@@ -65,8 +65,9 @@ export default {
|
|||||||
},
|
},
|
||||||
URL_API: process.env.URL_API,
|
URL_API: process.env.URL_API,
|
||||||
URL_OTP: process.env.URL_OTP,
|
URL_OTP: process.env.URL_OTP,
|
||||||
URL_STORAGE : process.env.URL_STORAGE,
|
URL_STORAGE: process.env.URL_STORAGE,
|
||||||
URL_FIREBASE_DB : process.env.URL_FIREBASE_DB
|
URL_FIREBASE_DB: process.env.URL_FIREBASE_DB,
|
||||||
|
PASS_ENC: process.env.PASS_ENC
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ import ButtonBackHeader from "@/components/buttonBackHeader";
|
|||||||
import ButtonSaveHeader from "@/components/buttonSaveHeader";
|
import ButtonSaveHeader from "@/components/buttonSaveHeader";
|
||||||
import { InputForm } from "@/components/inputForm";
|
import { InputForm } from "@/components/inputForm";
|
||||||
import Text from "@/components/Text";
|
import Text from "@/components/Text";
|
||||||
|
import { ConstEnv } from "@/constants/ConstEnv";
|
||||||
import Styles from "@/constants/Styles";
|
import Styles from "@/constants/Styles";
|
||||||
import { apiEditBanner, apiGetBanner, apiGetBannerOne } from "@/lib/api";
|
import { apiEditBanner, apiGetBanner, apiGetBannerOne } from "@/lib/api";
|
||||||
import { setEntities } from "@/lib/bannerSlice";
|
import { setEntities } from "@/lib/bannerSlice";
|
||||||
@@ -50,7 +51,7 @@ export default function EditBanner() {
|
|||||||
const hasil = await decryptToken(String(token?.current));
|
const hasil = await decryptToken(String(token?.current));
|
||||||
const data = await apiGetBannerOne({ user: hasil, id });
|
const data = await apiGetBannerOne({ user: hasil, id });
|
||||||
setSelectedImage({
|
setSelectedImage({
|
||||||
uri: `https://wibu-storage.wibudev.com/api/files/${data.data.image}`,
|
uri: `${ConstEnv.url_storage}/files/${data.data.image}`,
|
||||||
});
|
});
|
||||||
setTitle(data.data.title);
|
setTitle(data.data.title);
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import ButtonBackHeader from "@/components/buttonBackHeader"
|
|||||||
import DrawerBottom from "@/components/drawerBottom"
|
import DrawerBottom from "@/components/drawerBottom"
|
||||||
import MenuItemRow from "@/components/menuItemRow"
|
import MenuItemRow from "@/components/menuItemRow"
|
||||||
import ModalLoading from "@/components/modalLoading"
|
import ModalLoading from "@/components/modalLoading"
|
||||||
|
import { ConstEnv } from "@/constants/ConstEnv"
|
||||||
import Styles from "@/constants/Styles"
|
import Styles from "@/constants/Styles"
|
||||||
import { apiDeleteBanner, apiGetBanner } from "@/lib/api"
|
import { apiDeleteBanner, apiGetBanner } from "@/lib/api"
|
||||||
import { setEntities } from "@/lib/bannerSlice"
|
import { setEntities } from "@/lib/bannerSlice"
|
||||||
@@ -20,7 +21,6 @@ import * as mime from 'react-native-mime-types'
|
|||||||
import Toast from "react-native-toast-message"
|
import Toast from "react-native-toast-message"
|
||||||
import { useDispatch, useSelector } from "react-redux"
|
import { useDispatch, useSelector } from "react-redux"
|
||||||
|
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
id: string
|
id: string
|
||||||
title: string
|
title: string
|
||||||
@@ -71,7 +71,7 @@ export default function BannerList() {
|
|||||||
const openFile = () => {
|
const openFile = () => {
|
||||||
setModal(false)
|
setModal(false)
|
||||||
setLoadingOpen(true)
|
setLoadingOpen(true)
|
||||||
let remoteUrl = 'https://wibu-storage.wibudev.com/api/files/' + selectFile?.image;
|
let remoteUrl = ConstEnv.url_storage + '/files/' + selectFile?.image;
|
||||||
const fileName = selectFile?.title + '.' + selectFile?.extension;
|
const fileName = selectFile?.title + '.' + selectFile?.extension;
|
||||||
let localPath = `${FileSystem.documentDirectory}/${fileName}`;
|
let localPath = `${FileSystem.documentDirectory}/${fileName}`;
|
||||||
const mimeType = mime.lookup(fileName)
|
const mimeType = mime.lookup(fileName)
|
||||||
@@ -112,7 +112,7 @@ export default function BannerList() {
|
|||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
<ModalLoading isVisible={loadingOpen} setVisible={setLoadingOpen} />
|
<ModalLoading isVisible={loadingOpen} setVisible={setLoadingOpen} />
|
||||||
<ScrollView
|
<ScrollView
|
||||||
refreshControl={
|
refreshControl={
|
||||||
<RefreshControl
|
<RefreshControl
|
||||||
refreshing={refreshing}
|
refreshing={refreshing}
|
||||||
@@ -133,7 +133,7 @@ export default function BannerList() {
|
|||||||
borderType="all"
|
borderType="all"
|
||||||
icon={
|
icon={
|
||||||
<Image
|
<Image
|
||||||
source={{ uri: `https://wibu-storage.wibudev.com/api/files/${index.image}` }}
|
source={{ uri: `${ConstEnv.url_storage}/files/${index.image}` }}
|
||||||
style={[Styles.imgListBanner]}
|
style={[Styles.imgListBanner]}
|
||||||
/>
|
/>
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import Skeleton from "@/components/skeleton";
|
|||||||
import SkeletonContent from "@/components/skeletonContent";
|
import SkeletonContent from "@/components/skeletonContent";
|
||||||
import Text from '@/components/Text';
|
import Text from '@/components/Text';
|
||||||
import { ColorsStatus } from "@/constants/ColorsStatus";
|
import { ColorsStatus } from "@/constants/ColorsStatus";
|
||||||
|
import { ConstEnv } from "@/constants/ConstEnv";
|
||||||
import Styles from "@/constants/Styles";
|
import Styles from "@/constants/Styles";
|
||||||
import { apiGetDiscussionGeneralOne, apiSendDiscussionGeneralCommentar } from "@/lib/api";
|
import { apiGetDiscussionGeneralOne, apiSendDiscussionGeneralCommentar } from "@/lib/api";
|
||||||
import { getDB } from "@/lib/firebaseDatabase";
|
import { getDB } from "@/lib/firebaseDatabase";
|
||||||
@@ -184,7 +185,7 @@ export default function DetailDiscussionGeneral() {
|
|||||||
key={i}
|
key={i}
|
||||||
borderType="bottom"
|
borderType="bottom"
|
||||||
icon={
|
icon={
|
||||||
<ImageUser src={`https://wibu-storage.wibudev.com/api/files/${item.img}`} size="xs" />
|
<ImageUser src={`${ConstEnv.url_storage}/files/${item.img}`} size="xs" />
|
||||||
}
|
}
|
||||||
title={item.username}
|
title={item.username}
|
||||||
rightTopInfo={item.createdAt}
|
rightTopInfo={item.createdAt}
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import ImageUser from "@/components/imageNew";
|
|||||||
import ImageWithLabel from "@/components/imageWithLabel";
|
import ImageWithLabel from "@/components/imageWithLabel";
|
||||||
import InputSearch from "@/components/inputSearch";
|
import InputSearch from "@/components/inputSearch";
|
||||||
import Text from '@/components/Text';
|
import Text from '@/components/Text';
|
||||||
|
import { ConstEnv } from "@/constants/ConstEnv";
|
||||||
import Styles from "@/constants/Styles";
|
import Styles from "@/constants/Styles";
|
||||||
import { apiAddMemberDiscussionGeneral, apiGetDiscussionGeneralOne, apiGetUser } from "@/lib/api";
|
import { apiAddMemberDiscussionGeneral, apiGetDiscussionGeneralOne, apiGetUser } from "@/lib/api";
|
||||||
import { setUpdateDiscussionGeneralDetail } from "@/lib/discussionGeneralDetail";
|
import { setUpdateDiscussionGeneralDetail } from "@/lib/discussionGeneralDetail";
|
||||||
@@ -121,7 +122,7 @@ export default function AddMemberDiscussionDetail() {
|
|||||||
<ImageWithLabel
|
<ImageWithLabel
|
||||||
key={index}
|
key={index}
|
||||||
label={item.name}
|
label={item.name}
|
||||||
src={`https://wibu-storage.wibudev.com/api/files/${item.img}`}
|
src={`${ConstEnv.url_storage}/files/${item.img}`}
|
||||||
onClick={() => onChoose(item.idUser, item.name, item.img)}
|
onClick={() => onChoose(item.idUser, item.name, item.img)}
|
||||||
/>
|
/>
|
||||||
))
|
))
|
||||||
@@ -147,7 +148,7 @@ export default function AddMemberDiscussionDetail() {
|
|||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<View style={[Styles.rowItemsCenter]}>
|
<View style={[Styles.rowItemsCenter]}>
|
||||||
<ImageUser src={`https://wibu-storage.wibudev.com/api/files/${item.img}`} border />
|
<ImageUser src={`${ConstEnv.url_storage}/files/${item.img}`} border />
|
||||||
<View style={[Styles.ml10]}>
|
<View style={[Styles.ml10]}>
|
||||||
<Text style={[Styles.textDefault]}>{item.name}</Text>
|
<Text style={[Styles.textDefault]}>{item.name}</Text>
|
||||||
{
|
{
|
||||||
@@ -156,7 +157,7 @@ export default function AddMemberDiscussionDetail() {
|
|||||||
</View>
|
</View>
|
||||||
</View>
|
</View>
|
||||||
{
|
{
|
||||||
selectMember.some((i: any) => i.idUser == item.id) && <AntDesign name="check" size={20} color={'black'}/>
|
selectMember.some((i: any) => i.idUser == item.id) && <AntDesign name="check" size={20} color={'black'} />
|
||||||
}
|
}
|
||||||
</Pressable>
|
</Pressable>
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import { InputForm } from "@/components/inputForm";
|
|||||||
import ModalSelect from "@/components/modalSelect";
|
import ModalSelect from "@/components/modalSelect";
|
||||||
import SelectForm from "@/components/selectForm";
|
import SelectForm from "@/components/selectForm";
|
||||||
import Text from '@/components/Text';
|
import Text from '@/components/Text';
|
||||||
|
import { ConstEnv } from "@/constants/ConstEnv";
|
||||||
import Styles from "@/constants/Styles";
|
import Styles from "@/constants/Styles";
|
||||||
import { apiCreateDiscussionGeneral } from "@/lib/api";
|
import { apiCreateDiscussionGeneral } from "@/lib/api";
|
||||||
import { setUpdateDiscussionGeneralDetail } from "@/lib/discussionGeneralDetail";
|
import { setUpdateDiscussionGeneralDetail } from "@/lib/discussionGeneralDetail";
|
||||||
@@ -215,7 +216,7 @@ export default function CreateDiscussionGeneral() {
|
|||||||
key={index}
|
key={index}
|
||||||
borderType="bottom"
|
borderType="bottom"
|
||||||
icon={
|
icon={
|
||||||
<ImageUser src={`https://wibu-storage.wibudev.com/api/files/${item.img}`} size="sm" />
|
<ImageUser src={`${ConstEnv.url_storage}/files/${item.img}`} size="sm" />
|
||||||
}
|
}
|
||||||
title={item.name}
|
title={item.name}
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import MenuItemRow from "@/components/menuItemRow";
|
|||||||
import SkeletonTwoItem from "@/components/skeletonTwoItem";
|
import SkeletonTwoItem from "@/components/skeletonTwoItem";
|
||||||
import Text from '@/components/Text';
|
import Text from '@/components/Text';
|
||||||
import { ColorsStatus } from "@/constants/ColorsStatus";
|
import { ColorsStatus } from "@/constants/ColorsStatus";
|
||||||
|
import { ConstEnv } from "@/constants/ConstEnv";
|
||||||
import Styles from "@/constants/Styles";
|
import Styles from "@/constants/Styles";
|
||||||
import { apiDeleteMemberDiscussionGeneral, apiGetDiscussionGeneralOne } from "@/lib/api";
|
import { apiDeleteMemberDiscussionGeneral, apiGetDiscussionGeneralOne } from "@/lib/api";
|
||||||
import { useAuthSession } from "@/providers/AuthProvider";
|
import { useAuthSession } from "@/providers/AuthProvider";
|
||||||
@@ -109,7 +110,7 @@ export default function MemberDiscussionDetail() {
|
|||||||
key={index}
|
key={index}
|
||||||
borderType="bottom"
|
borderType="bottom"
|
||||||
icon={
|
icon={
|
||||||
<ImageUser src={`https://wibu-storage.wibudev.com/api/files/${item.img}`} size="sm" />
|
<ImageUser src={`${ConstEnv.url_storage}/files/${item.img}`} size="sm" />
|
||||||
}
|
}
|
||||||
title={item.name}
|
title={item.name}
|
||||||
onPress={() => {
|
onPress={() => {
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import ImageUser from "@/components/imageNew";
|
|||||||
import ImageWithLabel from "@/components/imageWithLabel";
|
import ImageWithLabel from "@/components/imageWithLabel";
|
||||||
import InputSearch from "@/components/inputSearch";
|
import InputSearch from "@/components/inputSearch";
|
||||||
import Text from "@/components/Text";
|
import Text from "@/components/Text";
|
||||||
|
import { ConstEnv } from "@/constants/ConstEnv";
|
||||||
import Styles from "@/constants/Styles";
|
import Styles from "@/constants/Styles";
|
||||||
import { apiAddMemberCalendar, apiGetCalendarOne, apiGetDivisionMember } from "@/lib/api";
|
import { apiAddMemberCalendar, apiGetCalendarOne, apiGetDivisionMember } from "@/lib/api";
|
||||||
import { setUpdateCalendar } from "@/lib/calendarUpdate";
|
import { setUpdateCalendar } from "@/lib/calendarUpdate";
|
||||||
@@ -128,7 +129,7 @@ export default function AddMemberCalendarEvent() {
|
|||||||
<ImageWithLabel
|
<ImageWithLabel
|
||||||
key={index}
|
key={index}
|
||||||
label={item.name}
|
label={item.name}
|
||||||
src={`https://wibu-storage.wibudev.com/api/files/${item.img}`}
|
src={`${ConstEnv.url_storage}/files/${item.img}`}
|
||||||
onClick={() => onChoose(item.idUser, item.name, item.img)}
|
onClick={() => onChoose(item.idUser, item.name, item.img)}
|
||||||
/>
|
/>
|
||||||
))
|
))
|
||||||
@@ -154,7 +155,7 @@ export default function AddMemberCalendarEvent() {
|
|||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<View style={[Styles.rowItemsCenter]}>
|
<View style={[Styles.rowItemsCenter]}>
|
||||||
<ImageUser src={`https://wibu-storage.wibudev.com/api/files/${item.img}`} border />
|
<ImageUser src={`${ConstEnv.url_storage}/files/${item.img}`} border />
|
||||||
<View style={[Styles.ml10, { width: '80%' }]}>
|
<View style={[Styles.ml10, { width: '80%' }]}>
|
||||||
<Text numberOfLines={1} ellipsizeMode="tail" style={[Styles.textDefault]}>{item.name}</Text>
|
<Text numberOfLines={1} ellipsizeMode="tail" style={[Styles.textDefault]}>{item.name}</Text>
|
||||||
{
|
{
|
||||||
@@ -163,7 +164,7 @@ export default function AddMemberCalendarEvent() {
|
|||||||
</View>
|
</View>
|
||||||
</View>
|
</View>
|
||||||
{
|
{
|
||||||
selectMember.some((i: any) => i.idUser == item.id) && <AntDesign name="check" size={20} color={'black'}/>
|
selectMember.some((i: any) => i.idUser == item.id) && <AntDesign name="check" size={20} color={'black'} />
|
||||||
}
|
}
|
||||||
</Pressable>
|
</Pressable>
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import ImageUser from "@/components/imageNew"
|
|||||||
import MenuItemRow from "@/components/menuItemRow"
|
import MenuItemRow from "@/components/menuItemRow"
|
||||||
import Skeleton from "@/components/skeleton"
|
import Skeleton from "@/components/skeleton"
|
||||||
import Text from "@/components/Text"
|
import Text from "@/components/Text"
|
||||||
|
import { ConstEnv } from "@/constants/ConstEnv"
|
||||||
import Styles from "@/constants/Styles"
|
import Styles from "@/constants/Styles"
|
||||||
import { apiDeleteCalendarMember, apiGetCalendarOne, apiGetDivisionOneFeature } from "@/lib/api"
|
import { apiDeleteCalendarMember, apiGetCalendarOne, apiGetDivisionOneFeature } from "@/lib/api"
|
||||||
import { setUpdateCalendar } from "@/lib/calendarUpdate"
|
import { setUpdateCalendar } from "@/lib/calendarUpdate"
|
||||||
@@ -70,7 +71,7 @@ export default function DetailEventCalendar() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async function handleLoad(loading:boolean) {
|
async function handleLoad(loading: boolean) {
|
||||||
try {
|
try {
|
||||||
setLoading(loading)
|
setLoading(loading)
|
||||||
const hasil = await decryptToken(String(token?.current));
|
const hasil = await decryptToken(String(token?.current));
|
||||||
@@ -241,7 +242,7 @@ export default function DetailEventCalendar() {
|
|||||||
<BorderBottomItem
|
<BorderBottomItem
|
||||||
key={index}
|
key={index}
|
||||||
borderType="bottom"
|
borderType="bottom"
|
||||||
icon={<ImageUser src={`https://wibu-storage.wibudev.com/api/files/${item.img}`} />}
|
icon={<ImageUser src={`${ConstEnv.url_storage}/files/${item.img}`} />}
|
||||||
title={item.name}
|
title={item.name}
|
||||||
subtitle={item.email}
|
subtitle={item.email}
|
||||||
onPress={() => {
|
onPress={() => {
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import ImageUser from "@/components/imageNew";
|
|||||||
import ImageWithLabel from "@/components/imageWithLabel";
|
import ImageWithLabel from "@/components/imageWithLabel";
|
||||||
import InputSearch from "@/components/inputSearch";
|
import InputSearch from "@/components/inputSearch";
|
||||||
import Text from "@/components/Text";
|
import Text from "@/components/Text";
|
||||||
|
import { ConstEnv } from "@/constants/ConstEnv";
|
||||||
import Styles from "@/constants/Styles";
|
import Styles from "@/constants/Styles";
|
||||||
import { apiCreateCalendar, apiGetDivisionMember } from "@/lib/api";
|
import { apiCreateCalendar, apiGetDivisionMember } from "@/lib/api";
|
||||||
import { setFormCreateCalendar } from "@/lib/calendarCreate";
|
import { setFormCreateCalendar } from "@/lib/calendarCreate";
|
||||||
@@ -117,7 +118,7 @@ export default function CreateCalendarAddMember() {
|
|||||||
<ImageWithLabel
|
<ImageWithLabel
|
||||||
key={index}
|
key={index}
|
||||||
label={item.name}
|
label={item.name}
|
||||||
src={`https://wibu-storage.wibudev.com/api/files/${item.img}`}
|
src={`${ConstEnv.url_storage}/files/${item.img}`}
|
||||||
onClick={() => onChoose(item.idUser, item.name, item.img)}
|
onClick={() => onChoose(item.idUser, item.name, item.img)}
|
||||||
/>
|
/>
|
||||||
))
|
))
|
||||||
@@ -140,13 +141,13 @@ export default function CreateCalendarAddMember() {
|
|||||||
onPress={() => { onChoose(item.idUser, item.name, item.img) }}
|
onPress={() => { onChoose(item.idUser, item.name, item.img) }}
|
||||||
>
|
>
|
||||||
<View style={[Styles.rowItemsCenter, Styles.w70]}>
|
<View style={[Styles.rowItemsCenter, Styles.w70]}>
|
||||||
<ImageUser src={`https://wibu-storage.wibudev.com/api/files/${item.img}`} border />
|
<ImageUser src={`${ConstEnv.url_storage}/files/${item.img}`} border />
|
||||||
<View style={[Styles.ml10]}>
|
<View style={[Styles.ml10]}>
|
||||||
<Text style={[Styles.textDefault]} numberOfLines={1} ellipsizeMode="tail">{item.name}</Text>
|
<Text style={[Styles.textDefault]} numberOfLines={1} ellipsizeMode="tail">{item.name}</Text>
|
||||||
</View>
|
</View>
|
||||||
</View>
|
</View>
|
||||||
{
|
{
|
||||||
selectMember.some((i: any) => i.idUser == item.idUser) && <AntDesign name="check" size={20} color={'black'}/>
|
selectMember.some((i: any) => i.idUser == item.idUser) && <AntDesign name="check" size={20} color={'black'} />
|
||||||
}
|
}
|
||||||
</Pressable>
|
</Pressable>
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import LabelStatus from "@/components/labelStatus";
|
|||||||
import Skeleton from "@/components/skeleton";
|
import Skeleton from "@/components/skeleton";
|
||||||
import SkeletonContent from "@/components/skeletonContent";
|
import SkeletonContent from "@/components/skeletonContent";
|
||||||
import Text from "@/components/Text";
|
import Text from "@/components/Text";
|
||||||
|
import { ConstEnv } from "@/constants/ConstEnv";
|
||||||
import Styles from "@/constants/Styles";
|
import Styles from "@/constants/Styles";
|
||||||
import {
|
import {
|
||||||
apiGetDiscussionOne,
|
apiGetDiscussionOne,
|
||||||
@@ -220,7 +221,7 @@ export default function DiscussionDetail() {
|
|||||||
borderType="bottom"
|
borderType="bottom"
|
||||||
icon={
|
icon={
|
||||||
<ImageUser
|
<ImageUser
|
||||||
src={`https://wibu-storage.wibudev.com/api/files/${data?.user_img}`}
|
src={`${ConstEnv.url_storage}/files/${data?.user_img}`}
|
||||||
size="sm"
|
size="sm"
|
||||||
/>
|
/>
|
||||||
}
|
}
|
||||||
@@ -267,7 +268,7 @@ export default function DiscussionDetail() {
|
|||||||
borderType="bottom"
|
borderType="bottom"
|
||||||
icon={
|
icon={
|
||||||
<ImageUser
|
<ImageUser
|
||||||
src={`https://wibu-storage.wibudev.com/api/files/${item.img}`}
|
src={`${ConstEnv.url_storage}/files/${item.img}`}
|
||||||
size="xs"
|
size="xs"
|
||||||
/>
|
/>
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import InputSearch from "@/components/inputSearch";
|
|||||||
import LabelStatus from "@/components/labelStatus";
|
import LabelStatus from "@/components/labelStatus";
|
||||||
import SkeletonContent from "@/components/skeletonContent";
|
import SkeletonContent from "@/components/skeletonContent";
|
||||||
import Text from "@/components/Text";
|
import Text from "@/components/Text";
|
||||||
|
import { ConstEnv } from "@/constants/ConstEnv";
|
||||||
import Styles from "@/constants/Styles";
|
import Styles from "@/constants/Styles";
|
||||||
import { apiGetDiscussion } from "@/lib/api";
|
import { apiGetDiscussion } from "@/lib/api";
|
||||||
import { useAuthSession } from "@/providers/AuthProvider";
|
import { useAuthSession } from "@/providers/AuthProvider";
|
||||||
@@ -141,7 +142,7 @@ export default function DiscussionDivision() {
|
|||||||
onPress={() => { router.push(`./discussion/${item.id}`) }}
|
onPress={() => { router.push(`./discussion/${item.id}`) }}
|
||||||
borderType="bottom"
|
borderType="bottom"
|
||||||
icon={
|
icon={
|
||||||
<ImageUser src={`https://wibu-storage.wibudev.com/api/files/${item.img}`} size="sm" />
|
<ImageUser src={`${ConstEnv.url_storage}/files/${item.img}`} size="sm" />
|
||||||
}
|
}
|
||||||
title={item.user_name}
|
title={item.user_name}
|
||||||
subtitle={
|
subtitle={
|
||||||
@@ -170,33 +171,8 @@ export default function DiscussionDivision() {
|
|||||||
/>
|
/>
|
||||||
}
|
}
|
||||||
/>
|
/>
|
||||||
// data.map((item, index) => (
|
|
||||||
// <BorderBottomItem
|
|
||||||
// key={index}
|
|
||||||
// onPress={() => { router.push(`./discussion/${item.id}`) }}
|
|
||||||
// borderType="bottom"
|
|
||||||
// icon={
|
|
||||||
// <ImageUser src={`https://wibu-storage.wibudev.com/api/files/${item.img}`} size="sm" />
|
|
||||||
// }
|
|
||||||
// title={item.user_name}
|
|
||||||
// subtitle={
|
|
||||||
// active == "true" ? item.status == 1 ? <LabelStatus category='success' text='BUKA' size="small" /> : <LabelStatus category='error' text='TUTUP' size="small" /> : <></>
|
|
||||||
// }
|
|
||||||
// rightTopInfo={item.createdAt}
|
|
||||||
// desc={item.desc}
|
|
||||||
// leftBottomInfo={
|
|
||||||
// <View style={[Styles.rowItemsCenter]}>
|
|
||||||
// <Ionicons name="chatbox-ellipses-outline" size={18} color="grey" style={Styles.mr05} />
|
|
||||||
// <Text style={[Styles.textInformation, Styles.cGray, Styles.mb05]}>Diskusikan</Text>
|
|
||||||
// </View>
|
|
||||||
// }
|
|
||||||
// rightBottomInfo={item.total_komentar + ' Komentar'}
|
|
||||||
// />
|
|
||||||
// ))
|
|
||||||
:
|
:
|
||||||
(
|
(<Text style={[Styles.textDefault, Styles.cGray, Styles.mv10, { textAlign: "center" }]}>Tidak ada diskusi</Text>)
|
||||||
<Text style={[Styles.textDefault, Styles.cGray, Styles.mv10, { textAlign: "center" }]}>Tidak ada diskusi</Text>
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
</View>
|
</View>
|
||||||
</View>
|
</View>
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ import ModalSelectMultiple from "@/components/modalSelectMultiple";
|
|||||||
import Skeleton from "@/components/skeleton";
|
import Skeleton from "@/components/skeleton";
|
||||||
import Text from "@/components/Text";
|
import Text from "@/components/Text";
|
||||||
import { ColorsStatus } from "@/constants/ColorsStatus";
|
import { ColorsStatus } from "@/constants/ColorsStatus";
|
||||||
|
import { ConstEnv } from "@/constants/ConstEnv";
|
||||||
import Styles from "@/constants/Styles";
|
import Styles from "@/constants/Styles";
|
||||||
import {
|
import {
|
||||||
apiDocumentDelete,
|
apiDocumentDelete,
|
||||||
@@ -268,7 +269,7 @@ export default function DocumentDivision() {
|
|||||||
|
|
||||||
const openFile = (item: Props) => {
|
const openFile = (item: Props) => {
|
||||||
if (Platform.OS == 'android') setLoadingOpen(true)
|
if (Platform.OS == 'android') setLoadingOpen(true)
|
||||||
let remoteUrl = 'https://wibu-storage.wibudev.com/api/files/' + item.idStorage;
|
let remoteUrl = ConstEnv.url_storage + '/files/' + item.idStorage;
|
||||||
const fileName = item.name + '.' + item.extension;
|
const fileName = item.name + '.' + item.extension;
|
||||||
let localPath = `${FileSystem.documentDirectory}/${fileName}`;
|
let localPath = `${FileSystem.documentDirectory}/${fileName}`;
|
||||||
const mimeType = mime.lookup(fileName)
|
const mimeType = mime.lookup(fileName)
|
||||||
@@ -440,20 +441,6 @@ export default function DocumentDivision() {
|
|||||||
{(selectedFiles.length > 0 || dariSelectAll) && (
|
{(selectedFiles.length > 0 || dariSelectAll) && (
|
||||||
<View style={[ColorsStatus.primary, Styles.bottomMenuSelectDocument]}>
|
<View style={[ColorsStatus.primary, Styles.bottomMenuSelectDocument]}>
|
||||||
<View style={[Styles.rowItemsCenter, { justifyContent: "center" }]}>
|
<View style={[Styles.rowItemsCenter, { justifyContent: "center" }]}>
|
||||||
{/* <MenuItemRow
|
|
||||||
icon={
|
|
||||||
<MaterialCommunityIcons
|
|
||||||
name="download-outline"
|
|
||||||
color="white"
|
|
||||||
size={25}
|
|
||||||
/>
|
|
||||||
}
|
|
||||||
title="Unduh"
|
|
||||||
onPress={() => { }}
|
|
||||||
column="many"
|
|
||||||
color="white"
|
|
||||||
disabled={selectedFiles.length == 0 || !copyAllowed}
|
|
||||||
/> */}
|
|
||||||
<MenuItemRow
|
<MenuItemRow
|
||||||
icon={
|
icon={
|
||||||
<MaterialCommunityIcons
|
<MaterialCommunityIcons
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import ImageUser from "@/components/imageNew";
|
|||||||
import ImageWithLabel from "@/components/imageWithLabel";
|
import ImageWithLabel from "@/components/imageWithLabel";
|
||||||
import InputSearch from "@/components/inputSearch";
|
import InputSearch from "@/components/inputSearch";
|
||||||
import Text from "@/components/Text";
|
import Text from "@/components/Text";
|
||||||
|
import { ConstEnv } from "@/constants/ConstEnv";
|
||||||
import Styles from "@/constants/Styles";
|
import Styles from "@/constants/Styles";
|
||||||
import { apiAddMemberTask, apiGetDivisionMember, apiGetTaskOne } from "@/lib/api";
|
import { apiAddMemberTask, apiGetDivisionMember, apiGetTaskOne } from "@/lib/api";
|
||||||
import { setUpdateTask } from "@/lib/taskUpdate";
|
import { setUpdateTask } from "@/lib/taskUpdate";
|
||||||
@@ -123,7 +124,7 @@ export default function AddMemberTask() {
|
|||||||
<ImageWithLabel
|
<ImageWithLabel
|
||||||
key={index}
|
key={index}
|
||||||
label={item.name}
|
label={item.name}
|
||||||
src={`https://wibu-storage.wibudev.com/api/files/${item.img}`}
|
src={`${ConstEnv.url_storage}/files/${item.img}`}
|
||||||
onClick={() => onChoose(item.idUser, item.name, item.img)}
|
onClick={() => onChoose(item.idUser, item.name, item.img)}
|
||||||
/>
|
/>
|
||||||
))
|
))
|
||||||
@@ -149,7 +150,7 @@ export default function AddMemberTask() {
|
|||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<View style={[Styles.rowItemsCenter, Styles.w80]}>
|
<View style={[Styles.rowItemsCenter, Styles.w80]}>
|
||||||
<ImageUser src={`https://wibu-storage.wibudev.com/api/files/${item.img}`} border />
|
<ImageUser src={`${ConstEnv.url_storage}/files/${item.img}`} border />
|
||||||
<View style={[Styles.ml10]}>
|
<View style={[Styles.ml10]}>
|
||||||
<Text style={[Styles.textDefault]} numberOfLines={1}>{item.name}</Text>
|
<Text style={[Styles.textDefault]} numberOfLines={1}>{item.name}</Text>
|
||||||
{
|
{
|
||||||
@@ -158,7 +159,7 @@ export default function AddMemberTask() {
|
|||||||
</View>
|
</View>
|
||||||
</View>
|
</View>
|
||||||
{
|
{
|
||||||
selectMember.some((i: any) => i.idUser == item.idUser) && <AntDesign name="check" size={20} color={'black'}/>
|
selectMember.some((i: any) => i.idUser == item.idUser) && <AntDesign name="check" size={20} color={'black'} />
|
||||||
}
|
}
|
||||||
</Pressable>
|
</Pressable>
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import MenuItemRow from "@/components/menuItemRow";
|
|||||||
import ModalSelect from "@/components/modalSelect";
|
import ModalSelect from "@/components/modalSelect";
|
||||||
import SectionListAddTask from "@/components/project/sectionListAddTask";
|
import SectionListAddTask from "@/components/project/sectionListAddTask";
|
||||||
import Text from "@/components/Text";
|
import Text from "@/components/Text";
|
||||||
|
import { ConstEnv } from "@/constants/ConstEnv";
|
||||||
import Styles from "@/constants/Styles";
|
import Styles from "@/constants/Styles";
|
||||||
import { apiCreateTask } from "@/lib/api";
|
import { apiCreateTask } from "@/lib/api";
|
||||||
import { setMemberChoose } from "@/lib/memberChoose";
|
import { setMemberChoose } from "@/lib/memberChoose";
|
||||||
@@ -189,7 +190,7 @@ export default function CreateTaskDivision() {
|
|||||||
borderType="bottom"
|
borderType="bottom"
|
||||||
icon={
|
icon={
|
||||||
<ImageUser
|
<ImageUser
|
||||||
src={`https://wibu-storage.wibudev.com/api/files/${item.img}`}
|
src={`${ConstEnv.url_storage}/files/${item.img}`}
|
||||||
size="sm"
|
size="sm"
|
||||||
/>
|
/>
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import ImageUser from "@/components/imageNew";
|
|||||||
import ImageWithLabel from "@/components/imageWithLabel";
|
import ImageWithLabel from "@/components/imageWithLabel";
|
||||||
import InputSearch from "@/components/inputSearch";
|
import InputSearch from "@/components/inputSearch";
|
||||||
import Text from "@/components/Text";
|
import Text from "@/components/Text";
|
||||||
|
import { ConstEnv } from "@/constants/ConstEnv";
|
||||||
import Styles from "@/constants/Styles";
|
import Styles from "@/constants/Styles";
|
||||||
import { apiGetDivisionMember } from "@/lib/api";
|
import { apiGetDivisionMember } from "@/lib/api";
|
||||||
import { setMemberChoose } from "@/lib/memberChoose";
|
import { setMemberChoose } from "@/lib/memberChoose";
|
||||||
@@ -93,7 +94,7 @@ export default function AddMemberCreateTask() {
|
|||||||
<ImageWithLabel
|
<ImageWithLabel
|
||||||
key={index}
|
key={index}
|
||||||
label={item.name}
|
label={item.name}
|
||||||
src={`https://wibu-storage.wibudev.com/api/files/${item.img}`}
|
src={`${ConstEnv.url_storage}/files/${item.img}`}
|
||||||
onClick={() => onChoose(item.idUser, item.name, item.img)}
|
onClick={() => onChoose(item.idUser, item.name, item.img)}
|
||||||
/>
|
/>
|
||||||
))
|
))
|
||||||
@@ -118,13 +119,13 @@ export default function AddMemberCreateTask() {
|
|||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<View style={[Styles.rowItemsCenter]}>
|
<View style={[Styles.rowItemsCenter]}>
|
||||||
<ImageUser src={`https://wibu-storage.wibudev.com/api/files/${item.img}`} border />
|
<ImageUser src={`${ConstEnv.url_storage}/files/${item.img}`} border />
|
||||||
<View style={[Styles.ml10]}>
|
<View style={[Styles.ml10]}>
|
||||||
<Text style={[Styles.textDefault]}>{item.name}</Text>
|
<Text style={[Styles.textDefault]}>{item.name}</Text>
|
||||||
</View>
|
</View>
|
||||||
</View>
|
</View>
|
||||||
{
|
{
|
||||||
selectMember.some((i: any) => i.idUser == item.idUser) && <AntDesign name="check" size={20} color={'black'}/>
|
selectMember.some((i: any) => i.idUser == item.idUser) && <AntDesign name="check" size={20} color={'black'} />
|
||||||
}
|
}
|
||||||
</Pressable>
|
</Pressable>
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import ImageUser from "@/components/imageNew";
|
|||||||
import ImageWithLabel from "@/components/imageWithLabel";
|
import ImageWithLabel from "@/components/imageWithLabel";
|
||||||
import InputSearch from "@/components/inputSearch";
|
import InputSearch from "@/components/inputSearch";
|
||||||
import Text from "@/components/Text";
|
import Text from "@/components/Text";
|
||||||
|
import { ConstEnv } from "@/constants/ConstEnv";
|
||||||
import Styles from "@/constants/Styles";
|
import Styles from "@/constants/Styles";
|
||||||
import { apiAddMemberDivision, apiGetDivisionOneDetail, apiGetUser } from "@/lib/api";
|
import { apiAddMemberDivision, apiGetDivisionOneDetail, apiGetUser } from "@/lib/api";
|
||||||
import { setUpdateDivision } from "@/lib/divisionUpdate";
|
import { setUpdateDivision } from "@/lib/divisionUpdate";
|
||||||
@@ -124,7 +125,7 @@ export default function AddMemberDivision() {
|
|||||||
<ImageWithLabel
|
<ImageWithLabel
|
||||||
key={index}
|
key={index}
|
||||||
label={item.name}
|
label={item.name}
|
||||||
src={`https://wibu-storage.wibudev.com/api/files/${item.img}`}
|
src={`${ConstEnv.url_storage}/files/${item.img}`}
|
||||||
onClick={() => onChoose(item.idUser, item.name, item.img)}
|
onClick={() => onChoose(item.idUser, item.name, item.img)}
|
||||||
/>
|
/>
|
||||||
))
|
))
|
||||||
@@ -150,7 +151,7 @@ export default function AddMemberDivision() {
|
|||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<View style={[Styles.rowItemsCenter]}>
|
<View style={[Styles.rowItemsCenter]}>
|
||||||
<ImageUser src={`https://wibu-storage.wibudev.com/api/files/${item.img}`} border />
|
<ImageUser src={`${ConstEnv.url_storage}/files/${item.img}`} border />
|
||||||
<View style={[Styles.ml10]}>
|
<View style={[Styles.ml10]}>
|
||||||
<Text style={[Styles.textDefault]} numberOfLines={1} ellipsizeMode="tail">{item.name}</Text>
|
<Text style={[Styles.textDefault]} numberOfLines={1} ellipsizeMode="tail">{item.name}</Text>
|
||||||
{
|
{
|
||||||
@@ -159,7 +160,7 @@ export default function AddMemberDivision() {
|
|||||||
</View>
|
</View>
|
||||||
</View>
|
</View>
|
||||||
{
|
{
|
||||||
selectMember.some((i: any) => i.idUser == item.id) && <AntDesign name="check" size={20} color={'black'}/>
|
selectMember.some((i: any) => i.idUser == item.id) && <AntDesign name="check" size={20} color={'black'} />
|
||||||
}
|
}
|
||||||
</Pressable>
|
</Pressable>
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import SectionCancel from "@/components/sectionCancel"
|
|||||||
import Skeleton from "@/components/skeleton"
|
import Skeleton from "@/components/skeleton"
|
||||||
import SkeletonTwoItem from "@/components/skeletonTwoItem"
|
import SkeletonTwoItem from "@/components/skeletonTwoItem"
|
||||||
import { ColorsStatus } from "@/constants/ColorsStatus"
|
import { ColorsStatus } from "@/constants/ColorsStatus"
|
||||||
|
import { ConstEnv } from "@/constants/ConstEnv"
|
||||||
import Styles from "@/constants/Styles"
|
import Styles from "@/constants/Styles"
|
||||||
import { apiDeleteMemberDivision, apiGetDivisionOneDetail, apiUpdateStatusAdminDivision } from "@/lib/api"
|
import { apiDeleteMemberDivision, apiGetDivisionOneDetail, apiUpdateStatusAdminDivision } from "@/lib/api"
|
||||||
import { useAuthSession } from "@/providers/AuthProvider"
|
import { useAuthSession } from "@/providers/AuthProvider"
|
||||||
@@ -188,7 +189,7 @@ export default function InformationDivision() {
|
|||||||
borderType="bottom"
|
borderType="bottom"
|
||||||
onPress={() => { dataDetail?.isActive && handleChooseMember(item) }}
|
onPress={() => { dataDetail?.isActive && handleChooseMember(item) }}
|
||||||
icon={
|
icon={
|
||||||
<ImageUser src={`https://wibu-storage.wibudev.com/api/files/${item.img}`} size="sm" />
|
<ImageUser src={`${ConstEnv.url_storage}/files/${item.img}`} size="sm" />
|
||||||
}
|
}
|
||||||
title={item.name}
|
title={item.name}
|
||||||
rightTopInfo={item.isAdmin ? "Admin" : "Anggota"}
|
rightTopInfo={item.isAdmin ? "Admin" : "Anggota"}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ import ButtonBackHeader from "@/components/buttonBackHeader";
|
|||||||
import ButtonSaveHeader from "@/components/buttonSaveHeader";
|
import ButtonSaveHeader from "@/components/buttonSaveHeader";
|
||||||
import ImageUser from "@/components/imageNew";
|
import ImageUser from "@/components/imageNew";
|
||||||
import Text from "@/components/Text";
|
import Text from "@/components/Text";
|
||||||
|
import { ConstEnv } from "@/constants/ConstEnv";
|
||||||
import Styles from "@/constants/Styles";
|
import Styles from "@/constants/Styles";
|
||||||
import { apiCreateDivision } from "@/lib/api";
|
import { apiCreateDivision } from "@/lib/api";
|
||||||
import { setFormCreateDivision } from "@/lib/divisionCreate";
|
import { setFormCreateDivision } from "@/lib/divisionCreate";
|
||||||
@@ -103,7 +104,7 @@ export default function CreateDivisionAddAdmin() {
|
|||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<View style={[Styles.rowItemsCenter, Styles.w70]}>
|
<View style={[Styles.rowItemsCenter, Styles.w70]}>
|
||||||
<ImageUser src={`https://wibu-storage.wibudev.com/api/files/${item.img}`} border />
|
<ImageUser src={`${ConstEnv.url_storage}/files/${item.img}`} border />
|
||||||
<View style={[Styles.ml10]}>
|
<View style={[Styles.ml10]}>
|
||||||
<Text style={[Styles.textDefault]} numberOfLines={1} ellipsizeMode="tail">{item.name}</Text>
|
<Text style={[Styles.textDefault]} numberOfLines={1} ellipsizeMode="tail">{item.name}</Text>
|
||||||
{
|
{
|
||||||
@@ -112,7 +113,7 @@ export default function CreateDivisionAddAdmin() {
|
|||||||
</View>
|
</View>
|
||||||
</View>
|
</View>
|
||||||
{
|
{
|
||||||
selectMember.some((i: any) => i == item.idUser) && <AntDesign name="check" size={20} color={'black'}/>
|
selectMember.some((i: any) => i == item.idUser) && <AntDesign name="check" size={20} color={'black'} />
|
||||||
}
|
}
|
||||||
</Pressable>
|
</Pressable>
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import ImageUser from "@/components/imageNew";
|
|||||||
import ImageWithLabel from "@/components/imageWithLabel";
|
import ImageWithLabel from "@/components/imageWithLabel";
|
||||||
import InputSearch from "@/components/inputSearch";
|
import InputSearch from "@/components/inputSearch";
|
||||||
import Text from "@/components/Text";
|
import Text from "@/components/Text";
|
||||||
|
import { ConstEnv } from "@/constants/ConstEnv";
|
||||||
import Styles from "@/constants/Styles";
|
import Styles from "@/constants/Styles";
|
||||||
import { apiGetUser } from "@/lib/api";
|
import { apiGetUser } from "@/lib/api";
|
||||||
import { setFormCreateDivision } from "@/lib/divisionCreate";
|
import { setFormCreateDivision } from "@/lib/divisionCreate";
|
||||||
@@ -86,7 +87,7 @@ export default function CreateDivisionAddMember() {
|
|||||||
<ImageWithLabel
|
<ImageWithLabel
|
||||||
key={index}
|
key={index}
|
||||||
label={item.name}
|
label={item.name}
|
||||||
src={`https://wibu-storage.wibudev.com/api/files/${item.img}`}
|
src={`${ConstEnv.url_storage}/files/${item.img}`}
|
||||||
onClick={() => onChoose(item.idUser, item.name, item.img)}
|
onClick={() => onChoose(item.idUser, item.name, item.img)}
|
||||||
/>
|
/>
|
||||||
))
|
))
|
||||||
@@ -112,7 +113,7 @@ export default function CreateDivisionAddMember() {
|
|||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<View style={[Styles.rowItemsCenter, Styles.w70]}>
|
<View style={[Styles.rowItemsCenter, Styles.w70]}>
|
||||||
<ImageUser src={`https://wibu-storage.wibudev.com/api/files/${item.img}`} border />
|
<ImageUser src={`${ConstEnv.url_storage}/files/${item.img}`} border />
|
||||||
<View style={[Styles.ml10]}>
|
<View style={[Styles.ml10]}>
|
||||||
<Text style={[Styles.textDefault]} numberOfLines={1} ellipsizeMode="tail">{item.name}</Text>
|
<Text style={[Styles.textDefault]} numberOfLines={1} ellipsizeMode="tail">{item.name}</Text>
|
||||||
{
|
{
|
||||||
@@ -121,7 +122,7 @@ export default function CreateDivisionAddMember() {
|
|||||||
</View>
|
</View>
|
||||||
</View>
|
</View>
|
||||||
{
|
{
|
||||||
selectMember.some((i: any) => i.idUser == item.id) && <AntDesign name="check" size={20} color={'black'}/>
|
selectMember.some((i: any) => i.idUser == item.id) && <AntDesign name="check" size={20} color={'black'} />
|
||||||
}
|
}
|
||||||
</Pressable>
|
</Pressable>
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import { InputForm } from "@/components/inputForm";
|
|||||||
import ModalSelect from "@/components/modalSelect";
|
import ModalSelect from "@/components/modalSelect";
|
||||||
import SelectForm from "@/components/selectForm";
|
import SelectForm from "@/components/selectForm";
|
||||||
import Text from "@/components/Text";
|
import Text from "@/components/Text";
|
||||||
|
import { ConstEnv } from "@/constants/ConstEnv";
|
||||||
import Styles from "@/constants/Styles";
|
import Styles from "@/constants/Styles";
|
||||||
import { apiEditProfile, apiGetProfile } from "@/lib/api";
|
import { apiEditProfile, apiGetProfile } from "@/lib/api";
|
||||||
import { setEntities } from "@/lib/entitiesSlice";
|
import { setEntities } from "@/lib/entitiesSlice";
|
||||||
@@ -252,7 +253,7 @@ export default function EditProfile() {
|
|||||||
) : (
|
) : (
|
||||||
<Pressable onPress={pickImageAsync}>
|
<Pressable onPress={pickImageAsync}>
|
||||||
<Image
|
<Image
|
||||||
source={errorImg ? require("../../assets/images/user.jpg") : { uri: `https://wibu-storage.wibudev.com/api/files/${data?.img}` }}
|
source={errorImg ? require("../../assets/images/user.jpg") : { uri: `${ConstEnv.url_storage}/files/${data?.img}` }}
|
||||||
style={[Styles.userProfileBig]}
|
style={[Styles.userProfileBig]}
|
||||||
onError={() => { setErrorImg(true) }}
|
onError={() => { setErrorImg(true) }}
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import LabelStatus from "@/components/labelStatus";
|
|||||||
import HeaderRightMemberDetail from "@/components/member/headerMemberDetail";
|
import HeaderRightMemberDetail from "@/components/member/headerMemberDetail";
|
||||||
import Skeleton from "@/components/skeleton";
|
import Skeleton from "@/components/skeleton";
|
||||||
import Text from "@/components/Text";
|
import Text from "@/components/Text";
|
||||||
|
import { ConstEnv } from "@/constants/ConstEnv";
|
||||||
import { valueRoleUser } from "@/constants/RoleUser";
|
import { valueRoleUser } from "@/constants/RoleUser";
|
||||||
import Styles from "@/constants/Styles";
|
import Styles from "@/constants/Styles";
|
||||||
import { apiGetProfile } from "@/lib/api";
|
import { apiGetProfile } from "@/lib/api";
|
||||||
@@ -93,7 +94,7 @@ export default function MemberDetail() {
|
|||||||
</>
|
</>
|
||||||
:
|
:
|
||||||
<>
|
<>
|
||||||
<ImageUser src={`https://wibu-storage.wibudev.com/api/files/${data?.img}`} size="lg" />
|
<ImageUser src={`${ConstEnv.url_storage}/files/${data?.img}`} size="lg" />
|
||||||
<Text style={[Styles.textSubtitle, Styles.cWhite, Styles.mt10]}>{data?.name}</Text>
|
<Text style={[Styles.textSubtitle, Styles.cWhite, Styles.mt10]}>{data?.name}</Text>
|
||||||
<Text style={[Styles.textMediumNormal, Styles.cWhite]}>{data?.role}</Text>
|
<Text style={[Styles.textMediumNormal, Styles.cWhite]}>{data?.role}</Text>
|
||||||
</>
|
</>
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import { InputForm } from "@/components/inputForm";
|
|||||||
import ModalSelect from "@/components/modalSelect";
|
import ModalSelect from "@/components/modalSelect";
|
||||||
import SelectForm from "@/components/selectForm";
|
import SelectForm from "@/components/selectForm";
|
||||||
import Text from "@/components/Text";
|
import Text from "@/components/Text";
|
||||||
|
import { ConstEnv } from "@/constants/ConstEnv";
|
||||||
import Styles from "@/constants/Styles";
|
import Styles from "@/constants/Styles";
|
||||||
import { apiEditUser, apiGetProfile } from "@/lib/api";
|
import { apiEditUser, apiGetProfile } from "@/lib/api";
|
||||||
import { setUpdateMember } from "@/lib/memberSlice";
|
import { setUpdateMember } from "@/lib/memberSlice";
|
||||||
@@ -83,7 +84,7 @@ export default function EditMember() {
|
|||||||
try {
|
try {
|
||||||
const response = await apiGetProfile({ id: id });
|
const response = await apiGetProfile({ id: id });
|
||||||
setData(response.data);
|
setData(response.data);
|
||||||
setSelectedImage({ uri: `https://wibu-storage.wibudev.com/api/files/${response.data.img}`, });
|
setSelectedImage({ uri: `${ConstEnv.url_storage}/files/${response.data.img}`, });
|
||||||
setChoosePosition({
|
setChoosePosition({
|
||||||
val: response.data.idPosition,
|
val: response.data.idPosition,
|
||||||
label: response.data.position,
|
label: response.data.position,
|
||||||
@@ -270,7 +271,7 @@ export default function EditMember() {
|
|||||||
errorImg ?
|
errorImg ?
|
||||||
<Pressable onPress={pickImageAsync}>
|
<Pressable onPress={pickImageAsync}>
|
||||||
<Image
|
<Image
|
||||||
source={errorImg ? require("../../../../assets/images/user.jpg") : { uri: `https://wibu-storage.wibudev.com/api/files/${data?.img}` }}
|
source={errorImg ? require("../../../../assets/images/user.jpg") : { uri: `${ConstEnv.url_storage}/files/${data?.img}` }}
|
||||||
style={[Styles.userProfileBig]}
|
style={[Styles.userProfileBig]}
|
||||||
onError={() => { setErrorImg(true) }}
|
onError={() => { setErrorImg(true) }}
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import ImageUser from "@/components/imageNew";
|
|||||||
import InputSearch from "@/components/inputSearch";
|
import InputSearch from "@/components/inputSearch";
|
||||||
import SkeletonTwoItem from "@/components/skeletonTwoItem";
|
import SkeletonTwoItem from "@/components/skeletonTwoItem";
|
||||||
import Text from "@/components/Text";
|
import Text from "@/components/Text";
|
||||||
|
import { ConstEnv } from "@/constants/ConstEnv";
|
||||||
import Styles from "@/constants/Styles";
|
import Styles from "@/constants/Styles";
|
||||||
import { apiGetUser } from "@/lib/api";
|
import { apiGetUser } from "@/lib/api";
|
||||||
import { useAuthSession } from "@/providers/AuthProvider";
|
import { useAuthSession } from "@/providers/AuthProvider";
|
||||||
@@ -150,7 +151,7 @@ export default function Index() {
|
|||||||
onPress={() => { router.push(`/member/${item.id}`) }}
|
onPress={() => { router.push(`/member/${item.id}`) }}
|
||||||
borderType="all"
|
borderType="all"
|
||||||
icon={
|
icon={
|
||||||
<ImageUser src={`https://wibu-storage.wibudev.com/api/files/${item.img}`} />
|
<ImageUser src={`${ConstEnv.url_storage}/files/${item.img}`} />
|
||||||
}
|
}
|
||||||
title={item.name}
|
title={item.name}
|
||||||
subtitle={`${item.group} - ${item.position}`}
|
subtitle={`${item.group} - ${item.position}`}
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ import ButtonBackHeader from "@/components/buttonBackHeader";
|
|||||||
import { ButtonHeader } from "@/components/buttonHeader";
|
import { ButtonHeader } from "@/components/buttonHeader";
|
||||||
import ItemDetailMember from "@/components/itemDetailMember";
|
import ItemDetailMember from "@/components/itemDetailMember";
|
||||||
import Text from "@/components/Text";
|
import Text from "@/components/Text";
|
||||||
|
import { ConstEnv } from "@/constants/ConstEnv";
|
||||||
import Styles from "@/constants/Styles";
|
import Styles from "@/constants/Styles";
|
||||||
import { useAuthSession } from "@/providers/AuthProvider";
|
import { useAuthSession } from "@/providers/AuthProvider";
|
||||||
import { AntDesign } from "@expo/vector-icons";
|
import { AntDesign } from "@expo/vector-icons";
|
||||||
@@ -41,7 +42,7 @@ export default function Profile() {
|
|||||||
<View style={{ flexDirection: 'column' }}>
|
<View style={{ flexDirection: 'column' }}>
|
||||||
<View style={[Styles.wrapHeadViewMember]}>
|
<View style={[Styles.wrapHeadViewMember]}>
|
||||||
<Image
|
<Image
|
||||||
source={error ? require("../../assets/images/user.jpg") : { uri: `https://wibu-storage.wibudev.com/api/files/${entities.img}` }}
|
source={error ? require("../../assets/images/user.jpg") : { uri: `${ConstEnv.url_storage}/files/${entities.img}` }}
|
||||||
onError={() => { setError(true) }}
|
onError={() => { setError(true) }}
|
||||||
style={[Styles.userProfileBig]}
|
style={[Styles.userProfileBig]}
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import ImageUser from "@/components/imageNew";
|
|||||||
import ImageWithLabel from "@/components/imageWithLabel";
|
import ImageWithLabel from "@/components/imageWithLabel";
|
||||||
import InputSearch from "@/components/inputSearch";
|
import InputSearch from "@/components/inputSearch";
|
||||||
import Text from "@/components/Text";
|
import Text from "@/components/Text";
|
||||||
|
import { ConstEnv } from "@/constants/ConstEnv";
|
||||||
import Styles from "@/constants/Styles";
|
import Styles from "@/constants/Styles";
|
||||||
import { apiAddMemberProject, apiGetProjectOne, apiGetUser } from "@/lib/api";
|
import { apiAddMemberProject, apiGetProjectOne, apiGetUser } from "@/lib/api";
|
||||||
import { setUpdateProject } from "@/lib/projectUpdate";
|
import { setUpdateProject } from "@/lib/projectUpdate";
|
||||||
@@ -122,7 +123,7 @@ export default function AddMemberProject() {
|
|||||||
<ImageWithLabel
|
<ImageWithLabel
|
||||||
key={index}
|
key={index}
|
||||||
label={item.name}
|
label={item.name}
|
||||||
src={`https://wibu-storage.wibudev.com/api/files/${item.img}`}
|
src={`${ConstEnv.url_storage}/files/${item.img}`}
|
||||||
onClick={() => onChoose(item.idUser, item.name, item.img)}
|
onClick={() => onChoose(item.idUser, item.name, item.img)}
|
||||||
/>
|
/>
|
||||||
))
|
))
|
||||||
@@ -147,7 +148,7 @@ export default function AddMemberProject() {
|
|||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<View style={[Styles.rowItemsCenter, Styles.w80]}>
|
<View style={[Styles.rowItemsCenter, Styles.w80]}>
|
||||||
<ImageUser src={`https://wibu-storage.wibudev.com/api/files/${item.img}`} border />
|
<ImageUser src={`${ConstEnv.url_storage}/files/${item.img}`} border />
|
||||||
<View style={[Styles.ml10]}>
|
<View style={[Styles.ml10]}>
|
||||||
<Text style={[Styles.textDefault]} numberOfLines={1}>{item.name}</Text>
|
<Text style={[Styles.textDefault]} numberOfLines={1}>{item.name}</Text>
|
||||||
{
|
{
|
||||||
@@ -156,7 +157,7 @@ export default function AddMemberProject() {
|
|||||||
</View>
|
</View>
|
||||||
</View>
|
</View>
|
||||||
{
|
{
|
||||||
selectMember.some((i: any) => i.idUser == item.id) && <AntDesign name="check" size={20} color={'black'}/>
|
selectMember.some((i: any) => i.idUser == item.id) && <AntDesign name="check" size={20} color={'black'} />
|
||||||
}
|
}
|
||||||
</Pressable>
|
</Pressable>
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ import ModalSelect from "@/components/modalSelect";
|
|||||||
import SectionListAddTask from "@/components/project/sectionListAddTask";
|
import SectionListAddTask from "@/components/project/sectionListAddTask";
|
||||||
import SelectForm from "@/components/selectForm";
|
import SelectForm from "@/components/selectForm";
|
||||||
import Text from "@/components/Text";
|
import Text from "@/components/Text";
|
||||||
|
import { ConstEnv } from "@/constants/ConstEnv";
|
||||||
import Styles from "@/constants/Styles";
|
import Styles from "@/constants/Styles";
|
||||||
import { apiCreateProject } from "@/lib/api";
|
import { apiCreateProject } from "@/lib/api";
|
||||||
import { setGroupChoose } from "@/lib/groupChoose";
|
import { setGroupChoose } from "@/lib/groupChoose";
|
||||||
@@ -300,7 +301,7 @@ export default function CreateProject() {
|
|||||||
borderType="bottom"
|
borderType="bottom"
|
||||||
icon={
|
icon={
|
||||||
<ImageUser
|
<ImageUser
|
||||||
src={`https://wibu-storage.wibudev.com/api/files/${item.img}`}
|
src={`${ConstEnv.url_storage}/files/${item.img}`}
|
||||||
size="sm"
|
size="sm"
|
||||||
/>
|
/>
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import ImageUser from "@/components/imageNew";
|
|||||||
import ImageWithLabel from "@/components/imageWithLabel";
|
import ImageWithLabel from "@/components/imageWithLabel";
|
||||||
import InputSearch from "@/components/inputSearch";
|
import InputSearch from "@/components/inputSearch";
|
||||||
import Text from "@/components/Text";
|
import Text from "@/components/Text";
|
||||||
|
import { ConstEnv } from "@/constants/ConstEnv";
|
||||||
import Styles from "@/constants/Styles";
|
import Styles from "@/constants/Styles";
|
||||||
import { apiGetUser } from "@/lib/api";
|
import { apiGetUser } from "@/lib/api";
|
||||||
import { setMemberChoose } from "@/lib/memberChoose";
|
import { setMemberChoose } from "@/lib/memberChoose";
|
||||||
@@ -100,7 +101,7 @@ export default function AddMemberCreateProject() {
|
|||||||
<ImageWithLabel
|
<ImageWithLabel
|
||||||
key={index}
|
key={index}
|
||||||
label={item.name}
|
label={item.name}
|
||||||
src={`https://wibu-storage.wibudev.com/api/files/${item.img}`}
|
src={`${ConstEnv.url_storage}/files/${item.img}`}
|
||||||
onClick={() => onChoose(item.idUser, item.name, item.img)}
|
onClick={() => onChoose(item.idUser, item.name, item.img)}
|
||||||
/>
|
/>
|
||||||
))
|
))
|
||||||
@@ -125,7 +126,7 @@ export default function AddMemberCreateProject() {
|
|||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<View style={[Styles.rowItemsCenter]}>
|
<View style={[Styles.rowItemsCenter]}>
|
||||||
<ImageUser src={`https://wibu-storage.wibudev.com/api/files/${item.img}`} border />
|
<ImageUser src={`${ConstEnv.url_storage}/files/${item.img}`} border />
|
||||||
<View style={[Styles.ml10]}>
|
<View style={[Styles.ml10]}>
|
||||||
<Text style={[Styles.textDefault]}>{item.name}</Text>
|
<Text style={[Styles.textDefault]}>{item.name}</Text>
|
||||||
</View>
|
</View>
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ import ButtonBackHeader from "@/components/buttonBackHeader";
|
|||||||
import InputSearch from "@/components/inputSearch";
|
import InputSearch from "@/components/inputSearch";
|
||||||
import Text from '@/components/Text';
|
import Text from '@/components/Text';
|
||||||
import { ColorsStatus } from "@/constants/ColorsStatus";
|
import { ColorsStatus } from "@/constants/ColorsStatus";
|
||||||
|
import { ConstEnv } from "@/constants/ConstEnv";
|
||||||
import Styles from "@/constants/Styles";
|
import Styles from "@/constants/Styles";
|
||||||
import { apiGetSearch } from "@/lib/api";
|
import { apiGetSearch } from "@/lib/api";
|
||||||
import { useAuthSession } from "@/providers/AuthProvider";
|
import { useAuthSession } from "@/providers/AuthProvider";
|
||||||
@@ -92,7 +93,7 @@ export default function Search() {
|
|||||||
<BorderBottomItem
|
<BorderBottomItem
|
||||||
borderType="bottom"
|
borderType="bottom"
|
||||||
icon={<Image
|
icon={<Image
|
||||||
source={{ uri: `https://wibu-storage.wibudev.com/api/files/${item.img}` }}
|
source={{ uri: `${ConstEnv.url_storage}/files/${item.img}` }}
|
||||||
style={[Styles.userProfileSmall]}
|
style={[Styles.userProfileSmall]}
|
||||||
/>}
|
/>}
|
||||||
title={item.name}
|
title={item.name}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import { ButtonForm } from "@/components/buttonForm";
|
import { ButtonForm } from "@/components/buttonForm";
|
||||||
import Text from '@/components/Text';
|
import Text from '@/components/Text';
|
||||||
|
import { ConstEnv } from "@/constants/ConstEnv";
|
||||||
import Styles from "@/constants/Styles";
|
import Styles from "@/constants/Styles";
|
||||||
import { useAuthSession } from "@/providers/AuthProvider";
|
import { useAuthSession } from "@/providers/AuthProvider";
|
||||||
import CryptoES from "crypto-es";
|
import CryptoES from "crypto-es";
|
||||||
@@ -19,10 +20,7 @@ export default function Index() {
|
|||||||
const login = (): void => {
|
const login = (): void => {
|
||||||
const random: string = 'contohLoginMobileDarmasaba';
|
const random: string = 'contohLoginMobileDarmasaba';
|
||||||
var mytexttoEncryption = "contohLoginMobileDarmasaba"
|
var mytexttoEncryption = "contohLoginMobileDarmasaba"
|
||||||
const encrypted = CryptoES.AES.encrypt(mytexttoEncryption, "your password").toString();
|
const encrypted = CryptoES.AES.encrypt(mytexttoEncryption, ConstEnv.pass_encrypt).toString();
|
||||||
// var C = require("crypto-js");
|
|
||||||
// var Decrypted = C.AES.decrypt(encrypted, "your password");
|
|
||||||
// var result = Decrypted.toString(C.enc.Utf8);
|
|
||||||
signIn(encrypted);
|
signIn(encrypted);
|
||||||
}
|
}
|
||||||
return (
|
return (
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
import { ConstEnv } from "@/constants/ConstEnv";
|
||||||
import Styles from "@/constants/Styles";
|
import Styles from "@/constants/Styles";
|
||||||
import { apiGetDivisionOneFeature } from "@/lib/api";
|
import { apiGetDivisionOneFeature } from "@/lib/api";
|
||||||
import { useAuthSession } from "@/providers/AuthProvider";
|
import { useAuthSession } from "@/providers/AuthProvider";
|
||||||
@@ -8,11 +9,11 @@ import { useLocalSearchParams } from "expo-router";
|
|||||||
import * as Sharing from 'expo-sharing';
|
import * as Sharing from 'expo-sharing';
|
||||||
import React, { useEffect, useState } from "react";
|
import React, { useEffect, useState } from "react";
|
||||||
import { Alert, Dimensions, Platform, Pressable, View } from "react-native";
|
import { Alert, Dimensions, Platform, Pressable, View } from "react-native";
|
||||||
import Text from "../Text";
|
|
||||||
import * as mime from 'react-native-mime-types';
|
import * as mime from 'react-native-mime-types';
|
||||||
import { ICarouselInstance } from "react-native-reanimated-carousel";
|
import { ICarouselInstance } from "react-native-reanimated-carousel";
|
||||||
import Skeleton from "../skeleton";
|
|
||||||
import ModalLoading from "../modalLoading";
|
import ModalLoading from "../modalLoading";
|
||||||
|
import Skeleton from "../skeleton";
|
||||||
|
import Text from "../Text";
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
id: string
|
id: string
|
||||||
@@ -52,7 +53,7 @@ export default function FileDivisionDetail() {
|
|||||||
|
|
||||||
const openFile = (item: Props) => {
|
const openFile = (item: Props) => {
|
||||||
if (Platform.OS == 'android') setLoadingOpen(true)
|
if (Platform.OS == 'android') setLoadingOpen(true)
|
||||||
let remoteUrl = 'https://wibu-storage.wibudev.com/api/files/' + item.idStorage;
|
let remoteUrl = ConstEnv.url_storage + '/files/' + item.idStorage;
|
||||||
const fileName = item.name + '.' + item.extension;
|
const fileName = item.name + '.' + item.extension;
|
||||||
let localPath = `${FileSystem.documentDirectory}/${fileName}`;
|
let localPath = `${FileSystem.documentDirectory}/${fileName}`;
|
||||||
const mimeType = mime.lookup(fileName)
|
const mimeType = mime.lookup(fileName)
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
import { ConstEnv } from "@/constants/ConstEnv";
|
||||||
import Styles from "@/constants/Styles";
|
import Styles from "@/constants/Styles";
|
||||||
import { apiGetBanner, apiGetProfile } from "@/lib/api";
|
import { apiGetBanner, apiGetProfile } from "@/lib/api";
|
||||||
import { setEntities } from "@/lib/bannerSlice";
|
import { setEntities } from "@/lib/bannerSlice";
|
||||||
@@ -50,7 +51,7 @@ export default function CaraouselHome() {
|
|||||||
onProgressChange={progress}
|
onProgressChange={progress}
|
||||||
renderItem={({ index }) => (
|
renderItem={({ index }) => (
|
||||||
<Image
|
<Image
|
||||||
source={{ uri: `https://wibu-storage.wibudev.com/api/files/${entities[index].image}` }}
|
source={{ uri: `${ConstEnv.url_storage}/files/${entities[index].image}` }}
|
||||||
style={[Styles.caraoselContent]}
|
style={[Styles.caraoselContent]}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
|
|||||||
@@ -1,8 +1,9 @@
|
|||||||
import { ColorsStatus } from "@/constants/ColorsStatus";
|
import { ColorsStatus } from "@/constants/ColorsStatus";
|
||||||
import Styles from "@/constants/Styles";
|
import Styles from "@/constants/Styles";
|
||||||
|
import { stringToDate, stringToDateTime } from "@/lib/fun_stringToDate";
|
||||||
import DateTimePicker from "@react-native-community/datetimepicker";
|
import DateTimePicker from "@react-native-community/datetimepicker";
|
||||||
import dayjs from "dayjs";
|
import dayjs from "dayjs";
|
||||||
import { useState } from "react";
|
import { useEffect, useState } from "react";
|
||||||
import { Platform, Pressable, View } from "react-native";
|
import { Platform, Pressable, View } from "react-native";
|
||||||
import Text from "./Text";
|
import Text from "./Text";
|
||||||
import ModalFloat from "./modalFloat";
|
import ModalFloat from "./modalFloat";
|
||||||
@@ -26,20 +27,50 @@ type Props = {
|
|||||||
|
|
||||||
export function InputDate({ label, value, placeholder, onChange, info, disable, error, errorText, required, mode, round, width, }: Props) {
|
export function InputDate({ label, value, placeholder, onChange, info, disable, error, errorText, required, mode, round, width, }: Props) {
|
||||||
const [modal, setModal] = useState(false);
|
const [modal, setModal] = useState(false);
|
||||||
|
const [valueFix, setValueFix] = useState(new Date())
|
||||||
|
const [valueFirst, setValueFirst] = useState("")
|
||||||
|
|
||||||
const onChangeDate = (type: string, selectedDate: any) => {
|
const onChangeDate = (type: string, selectedDate: any) => {
|
||||||
if (type === "set") {
|
if (type === "set") {
|
||||||
|
let formatted = ""
|
||||||
if (mode == "date") {
|
if (mode == "date") {
|
||||||
onChange(dayjs(selectedDate).format("DD-MM-YYYY"))
|
formatted = dayjs(selectedDate).format("DD-MM-YYYY")
|
||||||
} else if (mode == "time") {
|
} else if (mode == "time") {
|
||||||
onChange(dayjs(selectedDate).format("HH:mm"))
|
formatted = dayjs(selectedDate).format("HH:mm")
|
||||||
|
}
|
||||||
|
|
||||||
|
setValueFirst(formatted)
|
||||||
|
|
||||||
|
if (Platform.OS == "android") {
|
||||||
|
onChange(formatted)
|
||||||
|
setModal(false)
|
||||||
}
|
}
|
||||||
setModal(false)
|
|
||||||
} else {
|
|
||||||
setModal(false);
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
function onSetValue() {
|
||||||
|
onChange(valueFirst)
|
||||||
|
setModal(false)
|
||||||
|
}
|
||||||
|
|
||||||
|
function changeValue() {
|
||||||
|
if (value) {
|
||||||
|
let valDate = new Date()
|
||||||
|
if (mode == "date") {
|
||||||
|
valDate = stringToDate(value)
|
||||||
|
} else if (mode == "time") {
|
||||||
|
valDate = stringToDateTime("", value)
|
||||||
|
}
|
||||||
|
setValueFix(valDate)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
if (modal) changeValue()
|
||||||
|
}, [value, modal])
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<View style={[Styles.mb10]}>
|
<View style={[Styles.mb10]}>
|
||||||
@@ -63,23 +94,24 @@ export function InputDate({ label, value, placeholder, onChange, info, disable,
|
|||||||
<ModalFloat
|
<ModalFloat
|
||||||
isVisible={modal}
|
isVisible={modal}
|
||||||
setVisible={setModal}
|
setVisible={setModal}
|
||||||
onSubmit={() => { }}
|
onSubmit={() => { onSetValue() }}
|
||||||
buttonHide
|
|
||||||
disableSubmit
|
|
||||||
title={mode == "date" ? "Pilih Tanggal" : mode == "time" ? "Pilih Jam" : "Pilih Tanggal & Jam"}>
|
title={mode == "date" ? "Pilih Tanggal" : mode == "time" ? "Pilih Jam" : "Pilih Tanggal & Jam"}>
|
||||||
<DateTimePicker
|
<DateTimePicker
|
||||||
value={new Date()}
|
value={valueFix}
|
||||||
mode={mode}
|
mode={mode}
|
||||||
display="spinner"
|
display="spinner"
|
||||||
onChange={(event, date) => { onChangeDate(event.type, date) }}
|
onChange={(event, date) => {
|
||||||
|
onChangeDate(event.type, date)
|
||||||
|
}}
|
||||||
onTouchCancel={() => setModal(false)}
|
onTouchCancel={() => setModal(false)}
|
||||||
|
|
||||||
/>
|
/>
|
||||||
</ModalFloat>
|
</ModalFloat>
|
||||||
)
|
)
|
||||||
) : (
|
) : (
|
||||||
modal && (
|
modal && (
|
||||||
<DateTimePicker
|
<DateTimePicker
|
||||||
value={new Date()}
|
value={valueFix}
|
||||||
mode={mode}
|
mode={mode}
|
||||||
display="inline"
|
display="inline"
|
||||||
onChange={(event, date) => { onChangeDate(event.type, date) }}
|
onChange={(event, date) => { onChangeDate(event.type, date) }}
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
import { ConstEnv } from "@/constants/ConstEnv"
|
||||||
import { valueGender } from "@/constants/Gender"
|
import { valueGender } from "@/constants/Gender"
|
||||||
import { valueRoleUser } from "@/constants/RoleUser"
|
import { valueRoleUser } from "@/constants/RoleUser"
|
||||||
import Styles from "@/constants/Styles"
|
import Styles from "@/constants/Styles"
|
||||||
@@ -140,7 +141,7 @@ export default function ModalSelect({ open, close, title, category, idParent, on
|
|||||||
<ImageWithLabel
|
<ImageWithLabel
|
||||||
key={index}
|
key={index}
|
||||||
label={item.name}
|
label={item.name}
|
||||||
src={`https://wibu-storage.wibudev.com/api/files/${item.img}`}
|
src={`${ConstEnv.url_storage}/files/${item.img}`}
|
||||||
onClick={() => onChoose(item.idUser, item.name, item.img)}
|
onClick={() => onChoose(item.idUser, item.name, item.img)}
|
||||||
/>
|
/>
|
||||||
))
|
))
|
||||||
@@ -164,7 +165,7 @@ export default function ModalSelect({ open, close, title, category, idParent, on
|
|||||||
category == 'member'
|
category == 'member'
|
||||||
?
|
?
|
||||||
<View style={[Styles.rowItemsCenter]}>
|
<View style={[Styles.rowItemsCenter]}>
|
||||||
<ImageUser src={`https://wibu-storage.wibudev.com/api/files/${item.img}`} border />
|
<ImageUser src={`${ConstEnv.url_storage}/files/${item.img}`} border />
|
||||||
<Text style={[Styles.textDefault, Styles.ml10]}>{item.name}</Text>
|
<Text style={[Styles.textDefault, Styles.ml10]}>{item.name}</Text>
|
||||||
</View>
|
</View>
|
||||||
:
|
:
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
import { ConstEnv } from "@/constants/ConstEnv";
|
||||||
import Styles from "@/constants/Styles";
|
import Styles from "@/constants/Styles";
|
||||||
import { apiDeleteFileProject, apiGetProjectOne } from "@/lib/api";
|
import { apiDeleteFileProject, apiGetProjectOne } from "@/lib/api";
|
||||||
import { setUpdateProject } from "@/lib/projectUpdate";
|
import { setUpdateProject } from "@/lib/projectUpdate";
|
||||||
@@ -94,7 +95,7 @@ export default function SectionFile({ status, member, refreshing }: { status: nu
|
|||||||
const openFile = () => {
|
const openFile = () => {
|
||||||
setModal(false)
|
setModal(false)
|
||||||
setLoadingOpen(true)
|
setLoadingOpen(true)
|
||||||
let remoteUrl = 'https://wibu-storage.wibudev.com/api/files/' + selectFile?.idStorage;
|
let remoteUrl = ConstEnv.url_storage + '/files/' + selectFile?.idStorage;
|
||||||
const fileName = selectFile?.name + '.' + selectFile?.extension;
|
const fileName = selectFile?.name + '.' + selectFile?.extension;
|
||||||
let localPath = `${FileSystem.documentDirectory}/${fileName}`;
|
let localPath = `${FileSystem.documentDirectory}/${fileName}`;
|
||||||
const mimeType = mime.lookup(fileName)
|
const mimeType = mime.lookup(fileName)
|
||||||
@@ -172,14 +173,6 @@ export default function SectionFile({ status, member, refreshing }: { status: nu
|
|||||||
openFile()
|
openFile()
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
{/* <MenuItemRow
|
|
||||||
icon={<MaterialCommunityIcons name="download" color="black" size={25} />}
|
|
||||||
title="Download"
|
|
||||||
onPress={() => {
|
|
||||||
// download()
|
|
||||||
// setModal(false)
|
|
||||||
}}
|
|
||||||
/> */}
|
|
||||||
{
|
{
|
||||||
!member && (entityUser.role == "user" || entityUser.role == "coadmin") ? <></>
|
!member && (entityUser.role == "user" || entityUser.role == "coadmin") ? <></>
|
||||||
:
|
:
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
import { ConstEnv } from "@/constants/ConstEnv";
|
||||||
import Styles from "@/constants/Styles";
|
import Styles from "@/constants/Styles";
|
||||||
import { apiDeleteProjectMember, apiGetProjectOne } from "@/lib/api";
|
import { apiDeleteProjectMember, apiGetProjectOne } from "@/lib/api";
|
||||||
import { setUpdateProject } from "@/lib/projectUpdate";
|
import { setUpdateProject } from "@/lib/projectUpdate";
|
||||||
@@ -112,7 +113,7 @@ export default function SectionMember({ status, refreshing }: { status: number |
|
|||||||
<BorderBottomItem
|
<BorderBottomItem
|
||||||
key={index}
|
key={index}
|
||||||
borderType="bottom"
|
borderType="bottom"
|
||||||
icon={<ImageUser src={`https://wibu-storage.wibudev.com/api/files/${item.img}`} />}
|
icon={<ImageUser src={`${ConstEnv.url_storage}/files/${item.img}`} />}
|
||||||
title={item.name}
|
title={item.name}
|
||||||
onPress={() => {
|
onPress={() => {
|
||||||
if (status == 3) return
|
if (status == 3) return
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
import { ConstEnv } from "@/constants/ConstEnv";
|
||||||
import Styles from "@/constants/Styles";
|
import Styles from "@/constants/Styles";
|
||||||
import { apiDeleteFileTask, apiGetTaskOne } from "@/lib/api";
|
import { apiDeleteFileTask, apiGetTaskOne } from "@/lib/api";
|
||||||
import { setUpdateTask } from "@/lib/taskUpdate";
|
import { setUpdateTask } from "@/lib/taskUpdate";
|
||||||
@@ -27,7 +28,7 @@ type Props = {
|
|||||||
idStorage: string
|
idStorage: string
|
||||||
}
|
}
|
||||||
|
|
||||||
export default function SectionFileTask({refreshing}: {refreshing: boolean}) {
|
export default function SectionFileTask({ refreshing }: { refreshing: boolean }) {
|
||||||
const [isModal, setModal] = useState(false)
|
const [isModal, setModal] = useState(false)
|
||||||
const { token, decryptToken } = useAuthSession()
|
const { token, decryptToken } = useAuthSession()
|
||||||
const { detail } = useLocalSearchParams<{ detail: string }>()
|
const { detail } = useLocalSearchParams<{ detail: string }>()
|
||||||
@@ -68,7 +69,7 @@ export default function SectionFileTask({refreshing}: {refreshing: boolean}) {
|
|||||||
const openFile = () => {
|
const openFile = () => {
|
||||||
setModal(false)
|
setModal(false)
|
||||||
setLoadingOpen(true)
|
setLoadingOpen(true)
|
||||||
let remoteUrl = 'https://wibu-storage.wibudev.com/api/files/' + selectFile?.idStorage;
|
let remoteUrl = ConstEnv.url_storage + '/files/' + selectFile?.idStorage;
|
||||||
const fileName = selectFile?.name + '.' + selectFile?.extension;
|
const fileName = selectFile?.name + '.' + selectFile?.extension;
|
||||||
let localPath = `${FileSystem.documentDirectory}/${fileName}`;
|
let localPath = `${FileSystem.documentDirectory}/${fileName}`;
|
||||||
const mimeType = mime.lookup(fileName)
|
const mimeType = mime.lookup(fileName)
|
||||||
@@ -160,17 +161,8 @@ export default function SectionFileTask({refreshing}: {refreshing: boolean}) {
|
|||||||
title="Lihat / Share"
|
title="Lihat / Share"
|
||||||
onPress={() => {
|
onPress={() => {
|
||||||
openFile()
|
openFile()
|
||||||
// setModal(false)
|
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
{/* <MenuItemRow
|
|
||||||
icon={<MaterialCommunityIcons name="download" color="black" size={25} />}
|
|
||||||
title="Download"
|
|
||||||
onPress={() => {
|
|
||||||
setModal(false)
|
|
||||||
}}
|
|
||||||
/> */}
|
|
||||||
|
|
||||||
<MenuItemRow
|
<MenuItemRow
|
||||||
icon={<Ionicons name="trash" color="black" size={25} />}
|
icon={<Ionicons name="trash" color="black" size={25} />}
|
||||||
title="Hapus"
|
title="Hapus"
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
import { ConstEnv } from "@/constants/ConstEnv";
|
||||||
import Styles from "@/constants/Styles";
|
import Styles from "@/constants/Styles";
|
||||||
import { apiDeleteTaskMember, apiGetTaskOne } from "@/lib/api";
|
import { apiDeleteTaskMember, apiGetTaskOne } from "@/lib/api";
|
||||||
import { setUpdateTask } from "@/lib/taskUpdate";
|
import { setUpdateTask } from "@/lib/taskUpdate";
|
||||||
@@ -114,9 +115,7 @@ export default function SectionMemberTask({ refreshing }: { refreshing: boolean
|
|||||||
key={index}
|
key={index}
|
||||||
borderType="bottom"
|
borderType="bottom"
|
||||||
icon={
|
icon={
|
||||||
<ImageUser
|
<ImageUser src={`${ConstEnv.url_storage}/files/${item.img}`} />
|
||||||
src={`https://wibu-storage.wibudev.com/api/files/${item.img}`}
|
|
||||||
/>
|
|
||||||
}
|
}
|
||||||
title={item.name}
|
title={item.name}
|
||||||
onPress={() => {
|
onPress={() => {
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import Constants from 'expo-constants';
|
import Constants from 'expo-constants';
|
||||||
|
|
||||||
export const ConstEnv = {
|
export const ConstEnv = {
|
||||||
url_storage : Constants?.expoConfig?.extra?.URL_STORAGE
|
url_storage: Constants?.expoConfig?.extra?.URL_STORAGE,
|
||||||
|
pass_encrypt: Constants?.expoConfig?.extra?.PASS_ENC
|
||||||
}
|
}
|
||||||
@@ -1,8 +1,9 @@
|
|||||||
import { getApp } from '@react-native-firebase/app';
|
import { getApp } from '@react-native-firebase/app';
|
||||||
import { getDatabase } from '@react-native-firebase/database';
|
import { getDatabase } from '@react-native-firebase/database';
|
||||||
|
import Constants from 'expo-constants';
|
||||||
|
|
||||||
// Ganti URL sesuai punya kamu
|
// Ganti URL sesuai punya kamu
|
||||||
const DATABASE_URL = 'https://mobile-darmasaba-default-rtdb.asia-southeast1.firebasedatabase.app';
|
const DATABASE_URL = Constants?.expoConfig?.extra?.URL_FIREBASE_DB
|
||||||
|
|
||||||
export function getDB() {
|
export function getDB() {
|
||||||
return getDatabase(getApp(), DATABASE_URL);
|
return getDatabase(getApp(), DATABASE_URL);
|
||||||
|
|||||||
@@ -1,9 +1,18 @@
|
|||||||
import dayjs from 'dayjs';
|
import dayjs from "dayjs";
|
||||||
|
import utc from "dayjs/plugin/utc";
|
||||||
|
import timezone from "dayjs/plugin/timezone";
|
||||||
import { DateType } from "react-native-ui-datepicker";
|
import { DateType } from "react-native-ui-datepicker";
|
||||||
|
|
||||||
export function formatDateOnly(date?: DateType, format?: "DD-MM-YYYY" | "YYYY-MM-DD") {
|
dayjs.extend(utc);
|
||||||
if (!date) return "";
|
dayjs.extend(timezone);
|
||||||
const dateObj = dayjs.isDayjs(date) ? date.toDate() : date;
|
|
||||||
const iso = new Date(dateObj).toISOString().split("T")[0];
|
export function formatDateOnly(
|
||||||
return dayjs(iso).format(format || "DD-MM-YYYY");
|
date?: DateType,
|
||||||
}
|
format: "DD-MM-YYYY" | "YYYY-MM-DD" = "DD-MM-YYYY"
|
||||||
|
) {
|
||||||
|
if (!date) return "";
|
||||||
|
|
||||||
|
return dayjs(date)
|
||||||
|
.tz(dayjs.tz.guess())
|
||||||
|
.format(format);
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
import { ConstEnv } from '@/constants/ConstEnv';
|
||||||
import { apiRegisteredToken, apiUnregisteredToken } from '@/lib/api';
|
import { apiRegisteredToken, apiUnregisteredToken } from '@/lib/api';
|
||||||
import { getToken, requestPermission } from '@/lib/useNotification';
|
import { getToken, requestPermission } from '@/lib/useNotification';
|
||||||
import AsyncStorage from '@react-native-async-storage/async-storage';
|
import AsyncStorage from '@react-native-async-storage/async-storage';
|
||||||
@@ -41,13 +42,13 @@ export default function AuthProvider({ children }: { children: ReactNode }): Rea
|
|||||||
|
|
||||||
const decryptToken = (async (token: string) => {
|
const decryptToken = (async (token: string) => {
|
||||||
var C = require("crypto-js");
|
var C = require("crypto-js");
|
||||||
var Decrypted = C.AES.decrypt(token, "your password");
|
var Decrypted = C.AES.decrypt(token, ConstEnv.pass_encrypt);
|
||||||
var result = Decrypted.toString(C.enc.Utf8);
|
var result = Decrypted.toString(C.enc.Utf8);
|
||||||
return result
|
return result
|
||||||
})
|
})
|
||||||
|
|
||||||
const encryptToken = (async (token: string) => {
|
const encryptToken = (async (token: string) => {
|
||||||
var result = CryptoES.AES.encrypt(token, "your password").toString();
|
var result = CryptoES.AES.encrypt(token, ConstEnv.pass_encrypt).toString();
|
||||||
return result
|
return result
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user