Home Blog Page 4

android – Easy methods to disable fling gesture for a selected modal in react-native-modalfy with out affecting different modals?


I’m engaged on a React Native (Expo) app and utilizing react-native-modalfy to handle a number of modals, resembling ExerciseInfoModal, SelectExerciseModal, and RestTimeSelector. Every modal has its personal conduct, and I’m operating into a problem with gesture dealing with.
Drawback
I’d prefer to disable the fling gesture (or any dismiss gesture) particularly for ExerciseInfoModal so customers can’t swipe it down on iOS/Adnorid or dismiss it with the again button on Android. I’ve tried setting disableFlingGesture: true within the modal’s choices inside modalConfig, but it surely doesn’t appear to work—the modal can nonetheless be dismissed with a swipe. After I transfer disableFlingGesture: true to the defaultOptions, it does disable the gesture for all modals, however this messes up the UI for different modals like SelectExerciseModal, which makes use of a FlashList with scrollable content material (e.g., alignment points or unresponsive scrolling).
Objective
I need to disable the dismiss gesture just for ExerciseInfoModal whereas maintaining the opposite modals unaffected and absolutely practical.

My Present Setup
Right here’s how I’ve configured react-native-modalfy:

//Modal Configuration (modalConfig)
const modalConfig = {
  TimerModal,
  FullCalendarModal,
  RestTimeSelector: {
    modal: RestTimeSelector,
    choices: {
      disableFlingGesture: true,
    },
  },
  SelectExerciseModal,
  AddExerciseDialog,
  CustomConfirmationDialog,
  ExerciseInfoModal: {
    modal: ExerciseInfoModal,
    choices: {
      presentationStyle: "overFullScreen",
      gestureEnabled: false, // Ought to disable swipe-to-dismiss
      disableFlingGesture: true, // Ought to disable fling gesture
      onBackButtonPress: () => {}, // Ought to block Android again button
    },
  },
  SetTypeModal,
  PickerModal,
};

//Default Choices (defaultOptions):
`const defaultOptions: ModalOptions = {
  backdropOpacity: 0.6,
  place: "heart", // Fling gesture needs to be disabled by default right here
  transitionOptions: (animatedValue) => ({
    opacity: animatedValue.interpolate({
      inputRange: [0, 1, 2],
      outputRange: [0, 1, 0.9],
    }),
    remodel: [
      {
        perspective: 2000,
      },
      {
        translateY: animatedValue.interpolate({
          inputRange: [0, 1, 2],
          outputRange: [0, 0, -300],
        }),
      },
      {
        rotateX: animatedValue.interpolate({
          inputRange: [0, 1, 2],
          outputRange: ["0deg", "0deg", "90deg"],
          extrapolate: "clamp",
        }),
      },
      {
        scale: animatedValue.interpolate({
          inputRange: [0, 1, 2],
          outputRange: [0.1, 1, 0.9],
        }),
      },
    ],
  }),
  animateInConfig: {
    easing: Easing.bezier(0.42, -0.03, 0.27, 0.95),
    length: 450,
  },
  animateOutConfig: {
    easing: Easing.bezier(0.42, -0.03, 0.27, 0.95),
    length: 450,
  },
};

const stack: ModalStack = createModalStack(
  modalConfig,
  defaultOptions
);


  return (
    
      
      
      
        
      
      
    
  );

Observations:

With place: “heart” in defaultOptions, the fling gesture ought to already be disabled, however ExerciseInfoModal can nonetheless be swiped away (presumably the native swipe-to-dismiss).
Setting disableFlingGesture: true in defaultOptions works however breaks the UI for modals with scrollable content material (e.g., SelectExerciseModal).
RestTimeSelector behaves tremendous with disableFlingGesture: true, seemingly as a result of it has no scrollable content material.

What I’ve Tried

Added gestureEnabled: false to ExerciseInfoModal choices to cease swipe-to-dismiss, but it surely doesn’t take impact.
Used onBackButtonPress: () => {} to dam Android again button dismissal, however gestures nonetheless dismiss the modal.
Set disableFlingGesture: true in defaultOptions, which works however causes UI issues for different modals.

Questions

Why don’t gestureEnabled: false and disableFlingGesture: true in modalConfig work for ExerciseInfoModal?
How can I disable the dismiss gesture only for ExerciseInfoModal with out impacting different modals?
Might this be a limitation or bug in react-native-modalfy, or am I lacking a configuration element?

I’d actually respect any insights, workarounds, or options! I’m comfortable to tweak the setup or strive various approaches to make this work easily.

Extra Particulars

Library Model: react-native-modalfy v3.6.0(newest)
Platform: iOS and Android (Expo)
Associated Elements: Utilizing FlashList from @shopify/flash-list in SelectExerciseModal

Thanks upfront on your assist!

Zero-Emissions Electrical energy Surpasses 40% of World Electrical energy


Join CleanTechnica’s Weekly Substack for Zach and Scott’s in-depth analyses and excessive stage summaries, join our every day e-newsletter, and/or observe us on Google Information!


Final Up to date on: nineteenth April 2025, 11:57 pm

Photo voltaic and wind energy have been dominating new energy installations all world wide. Renewables accounted for 92.5% of recent energy capability globally in 2024, a surprising achievement, even when it’s been anticipated for the previous decade.

All of that new energy capability from clear, renewable vitality can also be regularly pushing up the share of our electrical energy that’s produced from renewables. Because of this, zero-emissions electrical energy sources reached a brand new milestone lately. Vitality suppose tank Ember lately reported that the world bought 40.9% of its electrical energy from zero-emissions sources final yr. (Notice that this contains electrical energy from nuclear energy vegetation.)

Hydropower remains to be the most important particular person supply of electrical energy from these zero-emissions gamers. It supplied 14% of the world’s electrical energy in 2024. Nuclear energy was nonetheless second, offering 9% of the world’s electrical energy. Nevertheless, wind and solar energy are actually proper behind these two zero-emissions pioneers. Wind energy supplied 8% of world electrical energy, and solar energy supplied 7% of world electrical energy.

As famous above, renewables accounted for 92.5% of recent energy capability in 2024, and 96.6% of that was from photo voltaic (77.3%) and wind (19.3%). So, we will anticipate them to climb forward of nuclear energy very quickly, and hydropower earlier than lengthy, too.

“The world reached a brand new milestone as low-carbon sources — renewables and nuclear — supplied 40.9% of the world’s electrical energy technology in 2024, passing the 40% mark for the primary time for the reason that Nineteen Forties,” Ember wrote in introducing its new report on the matter. “Renewables had been the primary driver of general clear progress, including a file 858 TWh in 2024, 49% greater than the earlier excessive in 2022. Photo voltaic was the most important contributor for the third yr working, including 474 TWh to succeed in a share of 6.9%. Photo voltaic was the fastest-growing energy supply (+29%) for the twentieth yr in a row. Photo voltaic electrical energy has doubled in simply three years, offering greater than 2,000 TWh of electrical energy in 2024. Wind technology additionally grew to eight.1% of world electrical energy, whereas hydro’s share remained regular at 14% – the one largest renewable supply.”

Actually, we will — rightly — emphasize renewables, or zero-emissions electrical energy sources, as an entire, however the progress story is all about photo voltaic. “Solar energy has turn into the engine of the worldwide vitality transition,” stated Phil MacDonald, Ember’s managing director. “Paired with battery storage, photo voltaic is ready to be an unstoppable pressure. Because the fastest-growing and largest supply of recent electrical energy, it’s vital in assembly the world’s ever-increasing demand for electrical energy.”

The International Electrical energy Overview — Ember’s sixth annual version — is predicated on country-by-country information. Ember additionally revealed an “open dataset on electrical energy technology in 2024, protecting 88 international locations that account for 93% of world electrical energy demand, in addition to historic information for 215 international locations” alongside the report.

As with seemingly all issues cleantech, China is much and away the chief of photo voltaic progress globally. Additionally, although, on this case, India is a significant market driver. “Greater than half of the rise in photo voltaic technology in 2024 was in China, with China’s clear technology progress assembly 81% of its demand improve in 2024,” Ember writes. “India’s photo voltaic capability additions in 2024 doubled in comparison with 2023. These two international locations are on the forefront of the drive to wash energy and can assist tip the stability in the direction of a decline in fossil technology at a worldwide stage.”

General, although, the story is what we’ve been reporting for greater than 15 years on CleanTechnica — cleantech like solar energy and wind energy is rising extremely quick and can ultimately take over their respective markets. “Cleantech, not fossil fuels, is now the driving pressure of financial growth,” MacDonald concluded. “The period of fossil progress is coming to an finish, even in a world of fast-rising demand.” Certainly.

Whether or not you’ve gotten solar energy or not, please full our newest solar energy survey.




Have a tip for CleanTechnica? Need to promote? Need to recommend a visitor for our CleanTech Discuss podcast? Contact us right here.


Join our every day e-newsletter for 15 new cleantech tales a day. Or join our weekly one if every day is just too frequent.


Commercial



 


CleanTechnica makes use of affiliate hyperlinks. See our coverage right here.

CleanTechnica’s Remark Coverage




World Vaccine Congress 2025: Improvements for a More healthy, Greener World


Why World Vaccine Congress 2025 Issues Extra Than Ever

What occurs when over 4,500 international well being leaders get collectively to reimagine how vaccines can save lives and the planet?

That’s the query behind the World Vaccine Congress 2025, April 22–24 in Washington, D.C. This large occasion will deliver collectively scientists, CEOs, policymakers and public well being organizations from all over the world to speak about the way forward for immunization and its impression on the setting.

With 550+ audio system and 300+ exhibitors, this Congress isn’t nearly medical innovation—it’s about planetary well being, fairness and sustainability. At The Environmental Weblog, we discover this intersection and this editorial provides you the high breakthroughs, eco-friendly practices and key challenges being addressed at World Vaccine Congress 2025.

Fast Abstract: What’s World Vaccine Congress?

The World Vaccine Congress is the largest international vaccine and immunotherapy convention, held yearly within the US. It’s a high-level platform to:

  • Present scientific progress
  • Deal with rising illness threats
  • Focus on regulatory traits and fairness gaps
  • Promote sustainable vaccine practices

With 14 tracks from most cancers immunotherapy to bioprocessing, 2025 goes to be the largest one but.

International Well being & Environmental Context in 2025

1.Public Well being Challenges in 2025

The world at present faces a trifecta of threats:

  • Rising Infectious Ailments: New viral strains like avian influenza and Chikungunya are increasing attributable to climate-driven shifts in mosquito habitats.
  • Antimicrobial Resistance (AMR): An estimated 2.8 million AMR-related infections happen yearly within the U.S., in line with the CDC.
  • Vaccine Hesitancy: A 2023 survey revealed that 30% of People stay skeptical of vaccine security, particularly for HPV and seasonal flu.

2. Vaccines and Their Environmental Price

Conventional vaccine manufacturing shouldn’t be eco-friendly. Contemplate:

  • Chilly-chain logistics that require fixed refrigeration = excessive power use
  • Medical waste from syringes and single-use vials = ecosystem contamination
  • Egg-based platforms = excessive water, feed, and land necessities

The Congress goals to pivot this narrative, spotlighting inexperienced vaccine applied sciences that reduce emissions and waste whereas bettering entry.

5 High Breakthroughs to Watch at World Vaccine Congress 2025

  1. Subsequent-Gen mRNA Vaccines

mRNA vaccines aren’t only for COVID anymore.

Count on updates on new platforms focusing on influenza, RSV, and even HIV, many providing growth instances beneath 100 days. Corporations like InDevR will showcase improvements just like the VaxArray platform, which accelerates mRNA evaluation for regulatory approval.

Environmental Affect:

  • Localized manufacturing reduces emissions from transport
  • Much less reliance on deep cold-chain storage
  • Decrease waste manufacturing per batch
  1. Virus-Like Particle (VLP) Vaccines

VLP vaccines mimic viruses with out utilizing infectious materials, providing safer and extra secure alternate options to live-attenuated vaccines.

LenioBio’s ALiCE® system makes use of plant cells to supply scalable, egg-free VLP vaccines for influenza and HPV.

Environmental Affect:

  • No animal merchandise
  • Decrease water and power utilization
  • Minimal manufacturing waste
  1. Most cancers Immunotherapy Vaccines

Therapeutic vaccines focusing on HPV-related cancers and others are coming into scientific pipelines. Improvements embody mixture therapies and personalised most cancers vaccines.

Environmental Affect:

  • Cut back want for chemotherapy = much less pharmaceutical waste
  • Single-batch manufacturing limits extra useful resource use
  • Fewer hospital visits = decrease carbon footprint
  1. ️ Bacterial Vaccines Concentrating on AMR

As antibiotic resistance rises, vaccines for Klebsiella pneumoniae and Staphylococcus aureus supply new hope.

These vaccines might scale back hospital-acquired infections and curb pointless antibiotic use—a game-changer in combating AMR.

Environmental Affect:

  • Much less contamination in water and soil
  • Improved sanitation in farm and hospital runoff
  • Decreased pharmaceutical residue within the setting
  1. Sustainable Vaccine Supply Methods

From microneedle patches to oral vaccine codecs, supply tech is revolutionizing outreach.

These improvements are particularly important for underserved U.S. communities and distant areas worldwide.

Environmental Affect:

  • Much less sharps waste
  • Lowered cold-chain power demand
  • Biodegradable packaging improves disposal security

Addressing Key Ache Factors within the USA

✅ Hesitancy & Belief

Periods on the Congress will concentrate on clear, evidence-based communication—significantly for HPV vaccines and COVID boosters. Options embody:

  • Clear security information
  • Neighborhood-led outreach
  • Skilled-led Q&A classes

✅ Equitable Entry

With 20% of rural People nonetheless underserved, vaccine supply should evolve.

Congress panels will spotlight:

  • Cell vaccine items
  • Eco-friendly logistics methods
  • Partnerships with Gavi, PATH, and public well being departments

✅ Actual-Time Security Monitoring

Platforms utilizing real-time antagonistic occasion monitoring, backed by FDA and WHO pointers, shall be mentioned. These bolster public confidence and guarantee safer rollouts.

The Inexperienced Shift: Sustainability in Focus at WVC 2025

The Congress will even present how producers are making vaccine manufacturing greener.

Key Improvements:

  • Closed-loop bioprocessing methods that recycle water
  • Biodegradable vials changing plastic
  • Photo voltaic-powered manufacturing services like these piloted by Sanofi

Case in Level:
Valneva’s vaccine strains are utilizing domestically sourced, eco-certified uncooked supplies, decreasing transport emissions and supporting native economies.

From Promise to Observe: What Previous Congresses Delivered

Whereas World Vaccine Congress 2025 is filled with promise, it builds on actual outcomes from earlier years—proof this isn’t simply speak, however motion.

Success Story: Moderna’s RSV Vaccine Development (WVC 2023)

At World Vaccine Congress 2023, Moderna introduced Part 3 outcomes for its RSV vaccine, displaying over 83% efficacy in stopping decrease respiratory tract illness in adults over 60. Only one yr later, in 2024, the vaccine was accepted by the FDA, a significant step ahead in tackling a virus that hospitalizes tens of 1000’s yearly.

This speedy progress from announcement to implementation reveals the Congress is a launchpad for scalable, life-saving options.

Actual-World Affect: Microneedle Supply in Kenya (WVC 2024)

One other innovation first mentioned at WVC 2024—microneedle patches for measles vaccines—has since been piloted in rural Kenya. Backed by PATH and the Gates Basis, these patches eradicated cold-chain challenges and elevated vaccine protection by over 35% in goal areas.

The success has led to expanded trials throughout East Africa and curiosity from U.S. rural well being methods trying to replicate the mannequin.

‍ Audio system to Watch at World Vaccine Congress 2025

Identify Function Matter
Sarah Gilbert, Ph.D. Univ. of Oxford Subsequent-gen vaccine platforms
Peter Marks, M.D. FDA Vaccine regulatory traits
Ana Maria Henao-Restrepo, M.D. WHO International entry methods
Moncef Slaoui, Ph.D. ex-GSK Most cancers immunotherapy
Richard Webby, Ph.D. St. Jude Influenza updates

5 Improvements at a Look

Vaccine Tech Illness Goal Inexperienced Profit Key Firm
mRNA HIV, Flu, RSV Low cold-chain wants Moderna, InDevR
VLP HPV, Flu Plant-based manufacturing LenioBio
Most cancers Vax HPV Cancers Reduces chemo waste BioNTech
Bacterial Vax AMR Pathogens Much less antibiotic runoff GSK, Pfizer
Microneedles Normal Much less medical waste Vaxxas, PATH

❓Incessantly Requested Questions (FAQ)

What’s the World Vaccine Congress 2025?
It’s the main international vaccine summit held yearly, that includes over 4,500 attendees targeted on public well being innovation and sustainability.

What are the highest subjects this yr?
Rising infectious ailments, most cancers vaccines, sustainable supply methods, and antimicrobial resistance.

Why is the occasion vital for the setting?
It promotes eco-conscious vaccine manufacturing, waste discount, and energy-efficient methods in international well being.

Who ought to attend?
Healthcare professionals, researchers, authorities our bodies, sustainability advocates, and pharmaceutical innovators.

✅ Conclusion: Be a part of the Motion Towards Sustainable Well being

World Vaccine Congress 2025 isn’t only a showcase of cutting-edge science. It’s a important gathering of minds targeted on constructing a more healthy, greener future.

For readers of The Environmental Weblog, that is your name to motion:

  • Keep up to date on the most recent vaccine improvements
  • Help eco-friendly well being insurance policies
  • Advocate for equitable and sustainable vaccine distribution

Discover extra insights at theenvironmentalblog.org and be a part of the change we want in each public well being and the planet’s future.

Official web site : World Vaccine Congress 2025

ios – SwiftUI: Why is my view pushed and popped instantly when being referred to as from ListView


I’ve not too long ago began working with iOS and SwiftUI. I ported a easy solitaire-type sport over from Android and I’ve it principally working, however now I am attempting to implement a view that renders earlier profitable palms. I am utilizing CoreData to retailer the profitable hand values, winner’s title, rating and date. I’ve confirmed that the info is saved and fetched accurately from CoreData. I can construct a listview that reveals all of the profitable palms, and when any merchandise within the listing is clicked, the profitable knowledge string ought to be handed to the WinningHandView to render the view, with an choice to share if the person so needs. Every part works wonderful till I click on on one of many profitable scores, after which the app seems to be prefer it’s attempting to load the brand new view, however it instantly returns the app all the way in which to the ContentView (residence) display.

Right here is the Corridor Of Fame Checklist View code that populates the listing from CoreData. The CoreData question completes efficiently and populates the listing:

import SwiftUI
import CoreData


struct HOFListView: View {
    
    @FetchRequest(sortDescriptors: [SortDescriptor(.date)])
    var winners: FetchedResults
    
    
    var physique: some View {
        ZStack{
            Colour.cardTableGreen.edgesIgnoringSafeArea(.all)
            VStack {
                Textual content("Excessive Scores")
                    .font(.title)
                    .foregroundColor(.white)
                    .daring(true)
                NavigationStack {
                    Checklist(winners, id: .self) { winner in
                        NavigationLink(winner.title ?? "none", worth: winner.winningData)
                        Textual content("Rating: (winner.rating)")
                        Textual content("Date: (winner.date ?? Date())")
                        
                    }
                    .scrollContentBackground(.hidden)
                    .navigationDestination(for: String.self, vacation spot: WinningHandView.init)
                } //NavigationStack
            }
        }
    }
}

#Preview {
    HOFListView()
}

Right here is the WinningHandView, which renders the winningData worth into the varied rows/columns of playing cards. I’ve verified that this worth is being handed and parsed accurately:

import SwiftUI

struct WinningHandView: View {
    
    let winningHandDetails: String
    
    var physique: some View {
        ZStack {
            Colour.cardTableGreen.edgesIgnoringSafeArea(.all)
            let theWinningHandDetails = winningHandDetails.parts(separatedBy: "|")
            
            VStack {
                Textual content("Your profitable hand:")
                    .font(.title)
                    .foregroundColor(.white)
                    .padding()
                    .daring(true)
                HStack {
                    VStack {
                        if theWinningHandDetails.depend == 0 {
                            Picture("b1fv")
                        }
                        else {
                            Picture(theWinningHandDetails[0])
                        }
                        if theWinningHandDetails.depend == 0 {
                            Picture("b1fv")
                                .padding(.high, -70.0)
                        }
                        else {
                            Picture(theWinningHandDetails[1])
                                .padding(.high, -70.0)
                        }
                        if theWinningHandDetails.depend == 0 {
                            Picture("b1fv")
                                .padding(.high, -70.0)
                        }
                        else {
                            Picture(theWinningHandDetails[2])
                                .padding(.high, -70.0)
                        }
                        if theWinningHandDetails.depend == 0 {
                            Picture("b1fv")
                                .padding(.high, -70.0)
                        }
                        else {
                            Picture(theWinningHandDetails[3])
                                .padding(.high, -70.0)
                        }
                        if theWinningHandDetails.depend == 0 {
                            Textual content("Rating: ")
                                .foregroundColor(.white)
                                .daring(true)
                        }
                        else {
                            Textual content("Rating: (theWinningHandDetails[21])")
                                .foregroundColor(.white)
                                .daring(true)
                        }
                        
                    } //VStack

                    VStack {
                        if theWinningHandDetails.depend == 0 {
                            Picture("b1fv")
                        }
                        else {
                            Picture(theWinningHandDetails[4])
                        }
                        if theWinningHandDetails.depend == 0 {
                            Picture("b1fv")
                                .padding(.high, -70.0)
                        }
                        else {
                            Picture(theWinningHandDetails[5])
                                .padding(.high, -70.0)
                        }
                        if theWinningHandDetails.depend == 0 {
                            Picture("b1fv")
                                .padding(.high, -70.0)
                        }
                        else {
                            Picture(theWinningHandDetails[6])
                                .padding(.high, -70.0)
                        }
                        if theWinningHandDetails.depend == 0 {
                            Picture("b1fv")
                                .padding(.high, -70.0)
                        }
                        else {
                            Picture(theWinningHandDetails[7])
                                .padding(.high, -70.0)
                        }
                        if theWinningHandDetails.depend == 0 {
                            Textual content("Rating: ")
                                .foregroundColor(.white)
                                .daring(true)
                        }
                        else {
                            Textual content("Rating: (theWinningHandDetails[22])")
                                .foregroundColor(.white)
                                .daring(true)
                        }
                        
                    } //VStack
                    VStack {
                        if theWinningHandDetails.depend == 0 {
                            Picture("b1fv")
                        }
                        else {
                            Picture(theWinningHandDetails[8])
                        }
                        if theWinningHandDetails.depend == 0 {
                            Picture("b1fv")
                                .padding(.high, -70.0)
                        }
                        else {
                            Picture(theWinningHandDetails[9])
                                .padding(.high, -70.0)
                        }
                        if theWinningHandDetails.depend == 0 {
                            Picture("b1fv")
                                .padding(.high, -70.0)
                        }
                        else {
                            Picture(theWinningHandDetails[10])
                                .padding(.high, -70.0)
                        }
                        if theWinningHandDetails.depend == 0 {
                            Picture("b1fv")
                                .padding(.high, -70.0)
                        }
                        else {
                            Picture(theWinningHandDetails[11])
                                .padding(.high, -70.0)
                        }
                        if theWinningHandDetails.depend == 0 {
                            Textual content("Rating: ")
                                .foregroundColor(.white)
                                .daring(true)
                        }
                        else {
                            Textual content("Rating: (theWinningHandDetails[23])")
                                .foregroundColor(.white)
                                .daring(true)
                        }
                    } //VStack
                    VStack {
                        if theWinningHandDetails.depend == 0 {
                            Picture("b1fv")
                        }
                        else {
                            Picture(theWinningHandDetails[12])
                        }
                        if theWinningHandDetails.depend == 0 {
                            Picture("b1fv")
                                .padding(.high, -70.0)
                        }
                        else {
                            Picture(theWinningHandDetails[13])
                                .padding(.high, -70.0)
                        }
                        if theWinningHandDetails.depend == 0 {
                            Picture("b1fv")
                                .padding(.high, -70.0)
                        }
                        else {
                            Picture(theWinningHandDetails[14])
                                .padding(.high, -70.0)
                        }
                        if theWinningHandDetails.depend == 0 {
                            Picture("b1fv")
                                .padding(.high, -70.0)
                        }
                        else {
                            Picture(theWinningHandDetails[15])
                                .padding(.high, -70.0)
                        }
                        if theWinningHandDetails.depend == 0 {
                            Textual content("Rating: ")
                                .foregroundColor(.white)
                                .daring(true)
                        }
                        else {
                            Textual content("Rating: (theWinningHandDetails[24])")
                                .foregroundColor(.white)
                                .daring(true)
                        }
                        
                    } //VStack
                } //HStack
                HStack {
                    VStack {
                        if theWinningHandDetails.depend == 0 {
                            Picture("b1fv")
                                .padding()
                        }
                        else {
                            Picture(theWinningHandDetails[20])
                                .padding()
                        }
                        if theWinningHandDetails.depend == 0 {
                            Textual content("Reduce card")
                                .foregroundColor(.white)
                                .daring(true)
                                .padding(.high, -15.0)
                                
                        }
                        else {
                            if theWinningHandDetails[27] != "0" {
                                Textual content("Nibs: 2")
                                    .foregroundColor(.white)
                                    .daring(true)
                                    .padding(.high, -15.0)
                            }
                        }
                        
                    } //VStack
                } //HStack
                VStack {
                    HStack {
                        if theWinningHandDetails.depend == 0 {
                            Picture("b1fv")
                        }
                        else {
                            Picture(theWinningHandDetails[16])
                        }
                        if theWinningHandDetails.depend == 0 {
                            Picture("b1fv")
                        }
                        else {
                            Picture(theWinningHandDetails[17])
                                .padding(.main, -25.0)
                        }
                        if theWinningHandDetails.depend == 0 {
                            Picture("b1fv")
                        }
                        else {
                            Picture(theWinningHandDetails[18])
                                .padding(.main, -25.0)
                        }
                        if theWinningHandDetails.depend == 0 {
                            Picture("b1fv")
                        }
                        else {
                            Picture(theWinningHandDetails[19])
                                .padding(.main, -25.0)
                        }
                    } //HStack
                    if theWinningHandDetails.depend == 0 {
                        Textual content("Crib: ")
                            .foregroundColor(.white)
                            .daring(true)
                            .padding()
                    }
                    else {
                        Textual content("Crib: (theWinningHandDetails[25])")
                            .foregroundColor(.white)
                            .daring(true)
                            .padding()
                    }
                    
                    if theWinningHandDetails.depend == 0 {
                        Textual content("Total Rating: ")
                            .foregroundColor(.white)
                            .daring(true)
                            .font(.title)
                    }
                    else {
                        Textual content("Total Rating: (theWinningHandDetails[26])")
                            .foregroundColor(.white)
                            .daring(true)
                            .font(.title)
                    }
                    if theWinningHandDetails.depend == 0 {
                        Textual content("")
                            .foregroundColor(.white)
                            .font(.title)
                            .daring(true)
                            .padding()
                    }
                    else {
                        Button("Share", motion: {
                                        let picture = self.snapshot()
                                        let activityVC = UIActivityViewController(activityItems: [image], applicationActivities: nil)
                                        let _: Void? = UIApplication.shared.connectedScenes.map({ $0 as? UIWindowScene }).compactMap({ $0 }).first?.home windows.first?.rootViewController?.current(activityVC, animated: true, completion: nil)
                                    })
                        .padding()
                        .font(.title)
                    }
                } //VStack
            } //VStack

        } //ZStack
    }
}

extension WinningHandView {
    func snapshot(origin: CGPoint = .zero, dimension: CGSize = .zero) -> UIImage {
        let controller = UIHostingController(rootView: self)
        let view = controller.view

        let targetSize = dimension == .zero ? controller.view.intrinsicContentSize : dimension
        view?.backgroundColor = .clear
        view?.bounds = CGRect(origin: origin, dimension: targetSize)

        let renderer = UIGraphicsImageRenderer(dimension: targetSize)

        return renderer.picture { _ in
            view?.drawHierarchy(in: controller.view.bounds, afterScreenUpdates: true)
        }
    }
}

#Preview 5ofd

I’ve created dummy knowledge (which could be seen within the #Preview) and I put a short lived Nav Hyperlink in my ContentView to name this view with the dummy knowledge, and it renders completely. I am undecided why it isn’t doing so for the ListView. Any assist can be vastly appreciated!

Fossil Fuels No Longer Majority of US Electrical energy!


Join CleanTechnica’s Weekly Substack for Zach and Scott’s in-depth analyses and excessive stage summaries, join our every day publication, and/or observe us on Google Information!


Final Up to date on: twentieth April 2025, 12:00 am

The cleantech revolution continues on — each … single … day. It looks as if such a short while that we’ve gone from the large milestone of photo voltaic and wind energy offering greater than 50% of latest energy capability additions within the US to photo voltaic and wind energy now offering nearly 100% of latest energy capability additions within the US. Although, even throughout all of that progress, the tough factor to have a look at is how slowly it takes to transition the precise electrical energy technology provide. So, it’s notably uplifting to see that final month, we crossed one other huge milestone — lower than 50% of US electrical energy was produced by fossil fuels for the primary time on document.

Naturally, whereas photo voltaic and wind energy alone didn’t present the vast majority of the nation’s electrical energy (but), they did attain new month-to-month data. Collectively, they accounted for twenty-four.4% of whole US electrical energy technology. The expansion simply retains going regular, and even dashing up. Electrical energy from solar energy grew by 37% in March yr over yr (by 8.3 terawatt-hours) whereas electrical energy from wind energy grew by 12% (or 5.7 terawatt-hours). Taking a look at 2024 as an entire, photo voltaic and wind energy mixed for 17% of US electrical energy technology. So, even in comparison with final yr, photo voltaic and wind are in complete new territory.

“In March 2025, fossil fuels accounted for lower than 50% (49.2%) of electrical energy generated, for the primary month on document. This surpasses the earlier month-to-month document low of 51% set in April 2024,” Ember writes. Electrical energy from fossil fuels, in the meantime, dropped by 2.5% (-4.3 TWh).

Ember notes that fossil fuels accounted for 65% of US electrical energy technology a decade in the past (in March 2015). I truly bear in mind reporting on that. (How time flies!) The tempo of change appeared so glacial again then, however it’s a notable accomplishment to get fossil fuels’ share down from 65% to 49% in a decade. May or not it’s quicker? Definitely!

Solar energy, in the meantime went from 1% of US electrical energy to 9.2% of US electrical energy in that decade. Once more, after I was producing month-to-month electrical energy technology stories and we had been at simply 1% for photo voltaic, it was straightforward to be pessimistic and bitter, however we had been excited to spotlight solar energy’s fast progress and a few optimistic long-term projections. (I truly recall engaged on a report that included that 1% determine for photo voltaic whereas using on a tram in Poland.) Time has proven that we’d make monumental progress, and the approaching decade will once more present a fast rise in solar energy’ share of US electrical energy technology — in truth, it ought to gobble up market share even quicker.

“It is a first sign that the US is approaching a tipping level the place clear energy takes the lead over fossil technology, and the place the significance of coal and fuel inevitably begins to fade. Wind and solar energy are pushing fossil fuels out of the combination. The truth on the bottom just isn’t one in every of a return to fossil fuels within the US, it’s the continued progress of photo voltaic and wind energy that would be the dominant driver of electrical energy technology progress within the US,” Nicolas Fulghum, ‍Senior Information Analyst at Ember, added. I just like the quote loads — that’s why I included it — however I’ve to say this isn’t the primary sign. We’ve been seeing indicators that that is the place we’re headed for no less than a decade.

Keep tuned. The enjoyable is simply starting!

Whether or not you have got solar energy or not, please full our newest solar energy survey.




Have a tip for CleanTechnica? Need to promote? Need to counsel a visitor for our CleanTech Discuss podcast? Contact us right here.


Join our every day publication for 15 new cleantech tales a day. Or join our weekly one if every day is just too frequent.


Commercial



 


CleanTechnica makes use of affiliate hyperlinks. See our coverage right here.

CleanTechnica’s Remark Coverage