1.0.3-1.4.9 #3
@@ -14,7 +14,7 @@ on:
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: Windows
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v6
|
||||
|
||||
@@ -55,7 +55,6 @@ export function MessageImage(props: AttachmentProps) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
return (
|
||||
<AspectRatio onClick={onClick} ref={mainRef} style={{
|
||||
minWidth: 200,
|
||||
@@ -76,7 +75,7 @@ export function MessageImage(props: AttachmentProps) {
|
||||
border: '1px solid ' + colors.borderColor,
|
||||
display: loadedImage ? 'block' : 'none'
|
||||
}} src={blob} onLoad={() => setLoadedImage(true)}></img>)}
|
||||
{((downloadStatus != DownloadStatus.DOWNLOADED && downloadStatus != DownloadStatus.PENDING) || !loadedImage) && preview.length >= 20 && (
|
||||
{((downloadStatus == DownloadStatus.NOT_DOWNLOADED) || !loadedImage) && preview.length >= 20 && (
|
||||
<>
|
||||
<img style={{
|
||||
minHeight: 220,
|
||||
@@ -85,8 +84,34 @@ export function MessageImage(props: AttachmentProps) {
|
||||
objectFit: 'cover',
|
||||
border: '1px solid ' + colors.borderColor
|
||||
}} src={/*block render???*/blurhashToBase64Image(preview, 200, 220)}></img>
|
||||
</>
|
||||
)}
|
||||
|
||||
{(props.delivered == DeliveredMessageState.WAITING && uploadedPercentage > 0 && isMessageDeliveredByTime(props.timestamp || 0, props.attachments.length)) &&
|
||||
<Portal target={mainRef.current!}>
|
||||
<Flex direction={'column'} pos={'absolute'} justify={'center'} top={0} h={'100%'} align={'center'} gap={'xs'}>
|
||||
<Box style={{
|
||||
backgroundColor: 'rgba(0, 0, 0, 0.3)',
|
||||
borderRadius: 50,
|
||||
height: 40,
|
||||
width: 40,
|
||||
display: 'flex',
|
||||
justifyContent: 'center',
|
||||
alignItems: 'center',
|
||||
}}>
|
||||
<AnimatedRoundedProgress size={40} value={uploadedPercentage > 95 ? 95 : uploadedPercentage}></AnimatedRoundedProgress>
|
||||
</Box>
|
||||
</Flex>
|
||||
</Portal>}
|
||||
{(props.delivered == DeliveredMessageState.ERROR || (props.delivered != DeliveredMessageState.DELIVERED &&
|
||||
!isMessageDeliveredByTime(props.timestamp || 0, props.attachments.length)
|
||||
)) && (
|
||||
<Overlay center h={'100%'} radius={8} color="#000" opacity={0.85}>
|
||||
<IconCircleX size={40} color={colors.error} />
|
||||
</Overlay>
|
||||
)}
|
||||
|
||||
{(downloadStatus == DownloadStatus.NOT_DOWNLOADED || downloadStatus == DownloadStatus.DOWNLOADING) && (<Flex direction={'column'} pos={'absolute'} top={0} justify={'center'} h={'100%'} align={'center'} gap={'xs'}>
|
||||
{!error && (
|
||||
<Box style={{
|
||||
backgroundColor: 'rgba(0, 0, 0, 0.3)',
|
||||
@@ -121,34 +146,7 @@ export function MessageImage(props: AttachmentProps) {
|
||||
}} color={'white'} />
|
||||
</Box>
|
||||
)}
|
||||
</Flex>
|
||||
</Portal>
|
||||
</>
|
||||
)}
|
||||
|
||||
{(props.delivered == DeliveredMessageState.WAITING && uploadedPercentage > 0 && isMessageDeliveredByTime(props.timestamp || 0, props.attachments.length)) &&
|
||||
<Portal target={mainRef.current!}>
|
||||
<Flex direction={'column'} pos={'absolute'} justify={'center'} top={0} h={'100%'} align={'center'} gap={'xs'}>
|
||||
<Box style={{
|
||||
backgroundColor: 'rgba(0, 0, 0, 0.3)',
|
||||
borderRadius: 50,
|
||||
height: 40,
|
||||
width: 40,
|
||||
display: 'flex',
|
||||
justifyContent: 'center',
|
||||
alignItems: 'center',
|
||||
}}>
|
||||
<AnimatedRoundedProgress size={40} value={uploadedPercentage > 95 ? 95 : uploadedPercentage}></AnimatedRoundedProgress>
|
||||
</Box>
|
||||
</Flex>
|
||||
</Portal>}
|
||||
{(props.delivered == DeliveredMessageState.ERROR || (props.delivered != DeliveredMessageState.DELIVERED &&
|
||||
!isMessageDeliveredByTime(props.timestamp || 0, props.attachments.length)
|
||||
)) && (
|
||||
<Overlay center h={'100%'} radius={8} color="#000" opacity={0.85}>
|
||||
<IconCircleX size={40} color={colors.error} />
|
||||
</Overlay>
|
||||
)}
|
||||
</Flex>)}
|
||||
</AspectRatio>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -20,7 +20,8 @@ export function UpdateAlert(props : UpdateAlertProps) {
|
||||
updateStatus,
|
||||
downloadLastApplicationUpdate,
|
||||
restartAppForUpdateApply,
|
||||
checkForUpdates
|
||||
checkForUpdates,
|
||||
updateServer
|
||||
} = useUpdater();
|
||||
|
||||
useEffect(() => {
|
||||
@@ -34,7 +35,7 @@ export function UpdateAlert(props : UpdateAlertProps) {
|
||||
<Button h={45} leftSection={
|
||||
<IconRefresh size={15}/>
|
||||
} onClick={() => {
|
||||
window.shell.openExternal(kernelUpdateUrl);
|
||||
window.shell.openExternal(updateServer + kernelUpdateUrl);
|
||||
}} fullWidth variant={'gradient'} gradient={{ from: 'red', to: 'orange', deg: 233 }} radius={radius}>
|
||||
Kernel update required
|
||||
</Button>
|
||||
|
||||
@@ -39,6 +39,7 @@ export interface UpdateContextValue {
|
||||
checkForUpdates: () => void;
|
||||
downloadLastApplicationUpdate: () => void;
|
||||
restartAppForUpdateApply: () => void;
|
||||
updateServer: string | null;
|
||||
}
|
||||
|
||||
export const UpdateProviderContext = createContext<UpdateContextValue | null>(null);
|
||||
@@ -167,7 +168,8 @@ export function UpdateProvider(props: UpdateProviderProps) {
|
||||
kernelUpdateUrl,
|
||||
checkForUpdates,
|
||||
downloadLastApplicationUpdate,
|
||||
restartAppForUpdateApply
|
||||
restartAppForUpdateApply,
|
||||
updateServer: updateServerRef.current
|
||||
}}>
|
||||
{props.children}
|
||||
</UpdateProviderContext.Provider>
|
||||
|
||||
@@ -1,11 +1,8 @@
|
||||
export const APP_VERSION = "1.0.2";
|
||||
export const APP_VERSION = "1.0.3";
|
||||
export const CORE_MIN_REQUIRED_VERSION = "1.4.9";
|
||||
|
||||
export const RELEASE_NOTICE = `
|
||||
**Update v1.0.2** :emoji_1f631:
|
||||
- Support multiple file downloads
|
||||
- Fix fallback after boot loading
|
||||
- Fix corss-chat reading messages
|
||||
- Support sync attachments on other devices
|
||||
- Fix UI bugs
|
||||
**Update v1.0.3** :emoji_1f631:
|
||||
- Fix kernel update alert
|
||||
- Fix UI bugs.
|
||||
`;
|
||||
Reference in New Issue
Block a user